芹菜:CELERYD_CONCURRENCY和工人数量

Che*_*mer 2 worker celery django-celery

另一个stackoverflow回答,我试图限制芹菜的工人数量

在我终止所有芹菜工人后,我用新的配置重新启动了芹菜.

CELERYD_CONCURRENCY = 1(在Django的settings.py中)

然后我输入以下命令来检查有多少芹菜工人正在工作.

ps auxww | grep 'celery worker' | grep -v grep | awk '{print $2}'

它返回两个PID,如24803,24817.

然后我改变配置CELERYD_CONCURRENCY = 2并重新启动芹菜.

相同的命令返回三个PID,如24944,24958,24959.(如您所见,最后两个PID是顺序的)

这意味着按照我的预期增加了工人数量.

但是,我不知道为什么它会返回两个PID,即使只有一个芹菜工人正在工作?

是否有一些辅助过程来帮助工人?

小智 7

我相信一个进程总是像控制器一样侦听任务,然后将它们分发给它的子进程来实际执行工作.因此,您将始终拥有比配置设置多1个进程.