芹菜不会启动多个工人

时间:2018-01-31 13:06:02

标签: django python-2.7 celery django-celery celeryd

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

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

/ etc / default / celeryd - (内部使用芹菜多开始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 个答案:

答案 0 :(得分:0)

你正在使用的不是现在使用django的芹菜的首选方法。请考虑执行here步骤。此外,您应该尝试使用

查找工人数量

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