【问题标题】:Running celeryd_multi with supervisor使用主管运行 celeryd_multi
【发布时间】:2013-03-21 21:50:29
【问题描述】:

我正在与 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

【问题讨论】:

    标签: celery django-celery supervisord background-foreground


    【解决方案1】:

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

    我不知道启动多个 celeryd 实例的任何简单解决方案 使用主管,但您始终可以为每个配置使用一个配置。也许有人 else 有一个解决方案。

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

    -- 询问索伦

    【讨论】:

      【解决方案2】:

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

      pidsig 应该是类似的,但是代理信号:

      http://permalink.gmane.org/gmane.comp.sysutils.supervision.general/2010
      
      https://github.com/chexum/pidsig/blob/master/pidsig.c
      

      我相信两者基本上都是等待背景儿童的包装器。

      【讨论】:

        猜你喜欢
        • 2012-12-03
        • 2016-10-03
        • 2023-03-09
        • 1970-01-01
        • 1970-01-01
        • 2016-07-12
        • 2016-12-24
        • 2018-03-21
        • 2012-08-02
        相关资源
        最近更新 更多