supervisor - как запустить несколько команд

Я управляю работником сельдерея, который обрабатывает очередь через супервизора.

вот мой/etc/супервизор / сельдерей.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 файл в том же каталог (в результате был запущен только исходный/первый).

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