与主管一起运行celeryd_multi

时间:2013-03-21 21:50:29

标签: celery django-celery supervisord background-foreground

我正在和djcelery和主管一起工作。 我和主管一起经营芹菜,一切都运转良好,一旦我意识到我需要把它改成芹菜,一切都搞砸了。 如果我在终端中运行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

2 个答案:

答案 0 :(得分:7)

Reply from the main developer of celery(2012年3月23日):

  

我不知道启动多个celeryd实例的任何简单解决方案   使用supervisor,但你总是可以为每个使用一个配置。也许有人   否则有一个解决方案。

     

generic-init.d / celeryd脚本使用celeryd-multi启动多个服务器,   并且您可以使用CELERYD_NODES /etc/init.d/celeryd变量来设置数字,或者   工作人员姓名列表。   我不确定如何与celeryd-multi一起使用supervisord,就像它一样   可能需要知道应该监控哪些结果PID(可能是监督)   插件可以写吗?)

     

- 询问Solem

答案 1 :(得分:0)

Daemontools有一个名为fghack的实用程序,旨在使后台进程“停留”在前台。

据说pidsig是相似的,但是代理信号:

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

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

我认为两者基本上都是等待背景儿童的包装纸。