芹菜不启动多个工人

Posted

技术标签:

【中文标题】芹菜不启动多个工人【英文标题】:Celery does not start multiple workers 【发布时间】:2018-07-10 14:35:25 【问题描述】:

我正在尝试设置一个服务器以使用 celery 在 Ubuntu 上运行多个工作人员。使用通用脚本设置守护进程并使用 rabbit-mq 作为代理。

celery==3.1.23
django-celery==3.1.17
django-celery-beat==1.0.1

/etc/default/celeryd - (内部使用 celery 多启动 RRR SSS TTT STST OTS ...)

CELERYD_NODES="RRR SSS TTT STST OTS"
CELERYD_OPTS="-c 4 -Q:RRR r,e,h -Q:SSS s,p -Q:TTT d -Q:STST sd -Ofair --detach --time-limit=1500
CELERYD="/x/home/ks/wb/manage.py celeryd"

$ service celerd start

$ ps -ef | grep 芹菜

/etc/init.d/celeryd start
root     25636 25631  0 01:37 pts/4    00:00:00 /usr/bin/python /usr/local/bin/celery multi start RRR SSS TTT STST OTS -c 10 --uid=celery --gid=celery --workdir=/x/home/ks/wb --pidfile=/var/run/celery/%n.pid --logfile=/var/log/celery/%n.log --loglevel=DEBUG --cmd=/x/home/ks/wb/manage.py celeryd -Q:RRR r,e,h -Q:SSS s,p -Q:TTT d -Q:STST -Ofair --detach --time-limit=1500
celery   27440 25636  0 01:53 pts/4    00:00:01 [celeryd: STD@dt:MainProcess] -active- (--time-limit=1500 -c 4 --executable=/usr/bin/python --gid=celery --detach --logfile=/var/log/celer/STD.log -n STD@dt-ss-app-3040 --loglevel=DEBUG --uid=celery --pidfile=/var/run/celery/STD.pid --workdir=/x/home/ks/wb -Ofair -Q standard)                          
celery   27452 27440  1 01:53 pts/4    00:00:05 [celeryd: STD@dt:Worker-1]                                                                                                                                                                                                                                                                                                                     
celery   27453 27440  0 01:53 pts/4    00:00:01 [celeryd: STD@dt:Worker-2]                                                                                                                                                                                                                                                                                                                     
celery   27455 27440  0 01:53 pts/4    00:00:01 [celeryd: STD@dt:Worker-3]     

只有一名工人 (STD) 开始工作。其他工人没有开始。

当我试图停止服务时

service celeryd stop

工人 STD 停止,另一个工人 RRR 开始。 这表示我的服务器在给定点只能运行一个工作人员。只有在运行 celeryd 停止 5 次(工人数量)后,服务才会停止

这种行为是否有特定原因?我是否必须设置任何变量才能使所有 5 个节点正常工作?

我想在同一台服务器上启动并运行所有节点。

【问题讨论】:

【参考方案1】:

您现在使用的不是将 celery 与 django 一起使用的首选方式。请考虑遵循here 的步骤。另外,您应该尝试使用

查找工人的数量

ps auxww | grep 'celery worker' | awk 'print $2'

【讨论】:

嗨 unixia,我使用旧版本的 celery 已经有一段时间了,升级它可能不是我现在的最佳途径。生病寻找使它在我现有的版本 3.1.23 中工作的东西。确保只有一名工人开始,因为花也只显示一名工人。

以上是关于芹菜不启动多个工人的主要内容,如果未能解决你的问题,请参考以下文章

芹菜工人和一个命令击败负载

芹菜工人并发

Flower UI 不显示芹菜工人和任务

如何优雅地重启芹菜工人?

从多处理开始芹菜工人

芹菜工人错误:ImportError no module named celery