【问题标题】:How can we see the threads in Celery?我们如何才能看到 Celery 中的线程?
【发布时间】:2023-03-24 22:07:01
【问题描述】:

我正在尝试使用--concurrency=1(基于Workers Guide)在 Celery 中设置不同数量的并发线程。

无论如何,当我运行守护进程 (celeryd ... --concurrency=1) 时,我不知道如何查看正在运行的线程数。

它们是否对应于ps -ef中显示的每一行?

【问题讨论】:

    标签: multithreading concurrency celery celery-task celeryd


    【解决方案1】:

    默认情况下,celery 为工人使用子进程。如果你配置concurrency=1你应该有2个进程:

    • 从代理消费消息并管理进程轮询的主进程
    • 1 个工作进程

    一般情况下,您将拥有 1 个主进程 + N 个工作子进程,与--concurrency=NCELERYD_CONCURRENCY=N 中所述的一样多

    我不确定 gevent 工作人员会发生什么。

    【讨论】:

    • 你说CELERYD_CONCURRENCY=N的意思是说这个参数可以放在celeryconfig.py中吗?谢谢!
    • 是的,你可以把它放在 celeryconfig.py 或者命令行中。如果同时使用命令行会覆盖配置文件。
    • 太好了,这很有意义。非常感谢您的帮助,@enlavin。
    • 这个进程使用的线程呢?我们如何配置用于每个进程的线程?在我的情况下,并发是 8 ps -ef | grep 芹菜 | grep -v grep | wc -l 返回 8 和 ps -eLf | grep 芹菜 | grep -v grep | wc -l 返回 34
    【解决方案2】:

    ps -ef | grep celery | grep -v grep | wc -l 返回 celery 进程运行的数量等于并发和 ps -eLf | grep celery | grep -v grep | wc -l 返回 celery 使用的线程数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-20
      • 2021-11-25
      • 2013-03-14
      • 2011-02-14
      • 1970-01-01
      • 2018-04-15
      • 1970-01-01
      相关资源
      最近更新 更多