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