我已经写了一个新贵作业来在我的Ubuntu服务器中运行芹菜。这是我的配置文件,称为 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
时,芹菜过程开始正常,所有x工作数量的开始都可以。
..但是当我执行sudo service celeryd stop
时,它停止了大多数过程,但要悬挂一些过程。
为什么会发生这种情况?我正在使用芹菜2.5.3。
这是GitHub跟踪器的问题。
https://github.com/celery/django-celery/issues/142
我仍然使用init.d运行芹菜,因此可能无法应用。考虑到这一点,停止芹菜服务将术语信号发送给芹菜。这告诉工人不要接受新任务,但不会终止现有任务。因此,根据您的任务执行需要多长时间,您可能会在告诉芹菜停止后一段时间内看到任务。最终,除非您还有其他问题,否则它们都会关闭。
我无法弄清楚这一点,但我较旧的芹菜版本似乎是一个问题。我在他们的问题跟踪器上发现了这个问题,我想它指出了同一问题:
https://github.com/celery/django-celery/issues/142
我将芹菜和django-celery升级到3.x.x版本,此问题已经消失了。