【问题标题】:supervisor - how to run multiple commands主管 - 如何运行多个命令
【发布时间】:2015-03-11 18:32:31
【问题描述】:

我正在管理一个通过 Supervisor 处理队列的 Celery worker。

这是我的 /etc/supervisor/celery.conf:

[program:celery]
command = /var/worker/venv/bin/celery worker -A a_report_tasks -Q a_report_process --loglevel=INFO
directory=/var/worker
user=nobody
numprocs=1
autostart=true
autorestart=true
startsecs=10
stopwaitsecs = 60
stdout_logfile=/var/log/celery/worker.log
stderr_logfile=/var/log/celery/worker.log
killasgroup=true
priority=998

如何添加第二个命令来运行?

/var/worker/venv/bin/celery worker -A b_report_tasks -Q b_report_process --loglevel=INFO

我尝试用&& 将同一行上的两个命令分开(导致语法错误),将一个完全独立的[program:celery] 部分添加到同一个文件(导致只运行第一个),并创建同一目录中的一个完全不同的celery1.conf 文件(导致仅运行原始/第一个文件)。

【问题讨论】:

  • 从您的帖子来看,第一个命令与第二个命令相同。是不是打错字了?
  • 糟糕!是的,那是一个错字。固定。

标签: python celery supervisord


【解决方案1】:

添加具有不同任务名称的第二部分。如果两个任务具有相同的任务名称,则后者覆盖前者。

[program:celeryb]
command = /var/worker/venv/bin/celery worker -A b_report_tasks -Q b_report_process --loglevel=INFO
directory=/var/worker
user=nobody
numprocs=1
autostart=true
autorestart=true
startsecs=10
stopwaitsecs = 60
stdout_logfile=/var/log/celery/worker.log
stderr_logfile=/var/log/celery/worker.log
killasgroup=true
priority=998

您还可以将它们分组,以便将两个任务作为一个组重新启动:

[group:celery-workers]
programs=celery,celeryb
priority=999

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 2013-10-29
    • 2011-10-04
    • 1970-01-01
    相关资源
    最近更新 更多