Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 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