我正在和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
答案 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
我认为两者基本上都是等待背景儿童的包装纸。