2013-03-21 22 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 

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