0

Ubuntuサーバーでセロリを実行するためのUpstartジョブを作成しました。これが私の設定ファイルです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、ほとんどのプロセスが停止しますが、いくつかのプロセスがハングしたままになります。

なぜこうなった?私はCelery2.5.3を使用しています。


これがGithubトラッカーからの問題です。

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

4

2 に答える 2

0

私はまだinit.dを使用してセロリを実行しているので、これは当てはまらない可能性があります。そのことを念頭に置いて、セロリサービスを停止すると、TERM信号がセロリに送信されます。これは、新しいタスクを受け入れないようにワーカーに指示しますが、既存のタスクを終了しません。したがって、タスクの実行にかかる時間によっては、セロリに停止を指示した後、しばらくの間タスクが表示される場合があります。最終的には、他に問題がない限り、すべてシャットダウンします。

于 2012-10-17T21:02:28.967 に答える
0

私はこれを理解することができませんでしたが、それは私の古いセロリバージョンの問題のようでした。私はこの問題が彼らの課題追跡システムで言及されているのを見つけました、そしてそれは同じ問題を指していると思います:

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

セロリとdjango-celeryを3.xxバージョンにアップグレードしたところ、この問題は解消されました。

于 2012-10-18T11:29:42.280 に答える