supervisor - how to run multiple commands

25,497

Add a second section with a different task name. If two tasks have the same task name, the latter overwrites the former.

[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

You can also group them so both tasks get restarted as a group:

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

Related videos on Youtube

okoboko
Author by

okoboko

Updated on July 09, 2022

Comments

  • okoboko
    okoboko almost 2 years

    I'm managing a Celery worker that processes queue via Supervisor.

    Here's my /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
    

    How do I add this second command to run?

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

    I tried separating the two commands on the same line with && (resulted in a syntax error), adding an entirely separate [program:celery] section to this same file (resulted in only the first one being run), and creating an entirely different celery1.conf file in the same directory (resulted in only the original/first one being run).

    • dhke
      dhke about 9 years
      From your posting, the first command is the same as the second one. Is that a typo?
    • okoboko
      okoboko about 9 years
      Oops! Yes, that was a typo. Fixed.