我正在管理一个通过主管处理队列的芹菜工人。
这是我的/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
文件(导致仅运行原始/第一个)。
添加具有
不同任务名称的第二个部分。如果两个任务具有相同的任务名称,则后者将覆盖前者。
[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