2012-10-17 13 views
0

我已經寫了一個Upstart作業來在我的Ubuntu服務器中運行芹菜。這裏是我叫celeryd.confUpstart作業運行芹菜不會停止所有工作進程

# 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

回答

0

我無法弄清楚這一點,但它似乎是我的老芹菜版本的問題。我發現他們的問題跟蹤提到這個問題,我想它指向同一個問題:

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

我升級我的芹菜和Django的芹菜去3.x.x版本和這個問題就消失了。

0

我仍然使用的init.d運行芹菜所以這可能並不適用。考慮到這一點,停止芹菜服務將TERM信號發送給芹菜。這告訴工人不要接受新的任務,但它不會終止現有的任務。因此,根據你的任務執行的時間長短,你可能會在告訴芹菜停止一段時間後看到任務。最終,除非你有其他問題,否則它們將全部關閉。

+0

這似乎不是問題,因爲我已經從RabbitMQ檢查了我的任務隊列,並且什麼也沒有。由於其他一些開發工作,我最近一直沒有排隊工作。我已升級到Celery 3.x.x,我希望這能解決問題。看看我的編輯:我認爲這是一個錯誤。 –