2013-03-21 21 views
7

我正在與djcelery和主管合作。 我和主管一起跑芹菜,一切正常,一旦我意識到我需要改變它芹菜多一切分手。 如果我在終端運行celeryd_multi,但它總是在後臺運行,就像supervisor需要命令在前臺運行問題所在。與主管合作運行celeryd_multi

這是我celery.ini

[program:celery_{{ division }}] 
command = {{ virtualenv_bin_dir }}/python manage.py celeryd_multi start default mailchimp -c:mailchimp 3 -c:default 5 --loglevel=info --logfile={{ log_dir }}/celery/%n.log --pidfile={{ run_dir }}/celery/%n.pid --schedule=/home/celery/celerybeat-schedule --settings={{ django_settings_python_path }} 
autorestart = false 
autostart = false 
directory = {{ repo_dir }}/{{ division }} 
user=celery 
numprocs = 1 
redirect_stderr = True 
stopwaitsecs = 10 
startsecs = 10 
priority = 997 
startretries = 3 

這裏是我把在終端工作正常

python manage.py celeryd_multi start default mailchimp -c:mailchimp 3 -c:default 5 --loglevel=info --logfile=/var/log/celery/%n.log --pidfile=/var/log/celery/%n.pid --schedule=/home/celery/celerybeat-schedule --settings=lively.settings_gunicorn

回答

7

Reply from the main developer of celery(2012年3月23)的命令:

我不知道任何簡單的解決方案來啓動多個celeryd實例ces 使用管理員,但您始終可以爲每個配置使用一個配置。也許有人 其他人有它的解決方案。

通用-的init.d/celeryd腳本使用celeryd的多啓動多個服務器, ,你可以使用CELERYD_NODES /etc/init.d/celeryd變量設定一個數值,或者 工人的名單。 我不知道怎麼supervisord可以作出與celeryd的多的工作,因爲這將可能 需要知道其產生的PID應監測與否(也許supervisord 插件可以寫?)

- Ask Solem

0

Daemontools有一個名爲fghack的實用程序,旨在使後臺進程「保持」在前臺。

pidsig據稱是相似的,但代理信號:

http://permalink.gmane.org/gmane.comp.sysutils.supervision.general/2010 

https://github.com/chexum/pidsig/blob/master/pidsig.c 

我相信他們都是基本的包裝等候在中背景的孩子。