从other stackoverflow answer开始,我试图限制芹菜的工人数量
在我终止所有芹菜工人后,我重新启动芹菜新配置。
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,即使只有一个芹菜工人正在工作?
是否有某种辅助流程来帮助工人?
答案 0 :(得分:7)
我相信一个进程总是像控制器一样侦听任务,然后将它们分发给它的子进程以实际执行工作。因此,您将始终拥有比配置设置多1个进程。