我已经编写了一个Upstart作业来在我的Ubuntu服务器上运行celery。这是我的配置文件celeryd.conf
# celeryd - runs the celery daemon
#
# This task is run on startup to run the celery daemon
description "run celery daemon"
start on startup
expect fork
respawn
exec su - trakklr -c "/app/trakklr/src/trakklr celeryd --events --beat --loglevel=debug --settings=production"
当我执行sudo service celeryd start
时,celeryd进程就会正常启动,所有x个工作进程都会正常启动。
..但是当我执行sudo service celeryd stop
时,它会停止大部分进程,但会暂停一些进程。
为什么会这样?我正在使用Celery 2.5.3。
以下是Github跟踪器的问题。
答案 0 :(得分:0)
我仍然使用init.d来运行芹菜,所以这可能不适用。考虑到这一点,停止芹菜服务将TERM信号发送给芹菜。这告诉工人不要接受新任务,但它不会终止现有任务。因此,根据您执行任务所需的时间,您可能会在告知芹菜停止后一段时间内看到任务。最终,除非你遇到其他问题,否则他们都会关闭。
答案 1 :(得分:0)
我无法解决这个问题,但这似乎与我的旧芹菜版本有关。我发现他们的问题跟踪器上提到了这个问题,我想它指出了同样的问题:
https://github.com/celery/django-celery/issues/142
我将芹菜和django-celery升级到3.x.x版本,这个问题就消失了。