从另一个stackoverflow的答案来看,我试图限制芹菜的工人数量
在我终止了所有的芹菜工作程序之后,我用新的配置重新启动了芹菜。
CELERYD_CONCURRENCY = 1
(在Django的设置.py中)
然后我输入以下命令来检查有多少芹菜工人在工作。
ps auxww | grep 'celery worker' | grep -v grep | awk '{print $2}'
它返回两个PID,如2480324817。
然后,我将配置更改为CELERYD_CONCURRENCY = 2
,并重新启动芹菜。
相同的命令返回三个PID,如24944、24958、24959。(正如您所看到的,最后两个PID是连续的)
这意味着工人的数量正如我所预期的那样增加了。
然而,我不知道为什么它返回两个PID,即使只有一个芹菜工人在工作
是否有辅助流程来帮助工人?
我相信一个进程总是像控制器一样监听任务,然后将它们分配给它的子进程来实际执行工作。因此,您将始终比配置设置多1个进程。