0

我写了一个 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,它会停止大部分进程,但有几个进程处于挂起状态。

为什么会这样?我正在使用芹菜 2.5.3。


这是 Github 跟踪器的一个问题。

https://github.com/celery/django-celery/issues/142

4

2 回答 2

0

我仍然使用 init.d 来运行 celery,所以这可能不适用。考虑到这一点,停止 celery 服务会向 celery 发送 TERM 信号。这告诉工人不要接受新任务,但不会终止现有任务。因此,根据您的任务执行所需的时间,您可能会在告诉 celery 停止后的一段时间内看到任务。最终,除非您遇到其他问题,否则它们将全部关闭。

于 2012-10-17T21:02:28.967 回答
0

我无法弄清楚这一点,但这似乎是我的旧芹菜版本的问题。我在他们的问题跟踪器上发现了这个问题,我猜它指向了同样的问题:

https://github.com/celery/django-celery/issues/142

我将 celery 和 django-celery 升级到 3.xx 版本,这个问题就消失了。

于 2012-10-18T11:29:42.280 回答