芹菜:CELERYD_CONCURRENCY 和工人数
Celery : CELERYD_CONCURRENCY and number of workers
从 other Whosebug answer 开始,我尝试限制 celery 的工人数量
在我终止所有 celery worker 后,我用新配置重新启动了 celery。
CELERYD_CONCURRENCY = 1
(在 Django 的 settings.py)
然后我输入以下命令来检查有多少芹菜工人在工作。
ps auxww | grep 'celery worker' | grep -v grep | awk '{print }'
它returns 两个PID像24803, 24817.
然后我将配置更改为 CELERYD_CONCURRENCY = 2
并重新启动 celery。
相同的命令returns三个 PID,如 24944、24958、24959。(如您所见,最后两个 PID 是连续的)
这意味着工人数量如我所料增加了。
但是,我不知道为什么即使只有一个 celery worker 在工作,它 returns 两个 PID?
有什么辅助流程可以帮助工人吗?
我相信一个进程总是像控制器一样监听任务,然后将它们分发给它的子进程以实际执行工作。因此,你总是会比配置设置多1个进程。
从 other Whosebug answer 开始,我尝试限制 celery 的工人数量
在我终止所有 celery worker 后,我用新配置重新启动了 celery。
CELERYD_CONCURRENCY = 1
(在 Django 的 settings.py)
然后我输入以下命令来检查有多少芹菜工人在工作。
ps auxww | grep 'celery worker' | grep -v grep | awk '{print }'
它returns 两个PID像24803, 24817.
然后我将配置更改为 CELERYD_CONCURRENCY = 2
并重新启动 celery。
相同的命令returns三个 PID,如 24944、24958、24959。(如您所见,最后两个 PID 是连续的)
这意味着工人数量如我所料增加了。
但是,我不知道为什么即使只有一个 celery worker 在工作,它 returns 两个 PID?
有什么辅助流程可以帮助工人吗?
我相信一个进程总是像控制器一样监听任务,然后将它们分发给它的子进程以实际执行工作。因此,你总是会比配置设置多1个进程。