芹菜: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个进程。