2015-03-11 13 views
13

Sto gestendo un operatore di Celery che elabora la coda tramite Supervisor.supervisore - come eseguire più comandi

Ecco la mia /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 

Come faccio ad aggiungere questo secondo comando da eseguire?

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

Ho provato che separa i due comandi sulla stessa linea con && (determinato un errore di sintassi), aggiungendo una [program:celery] sezione interamente separato per questo stesso file (portato solo il primo in esecuzione), e creando un file celery1.conf completamente diverso nella stessa directory (si è verificato solo l'originale/il primo in esecuzione).

+0

Dal vostro invio, il primo comando è lo stesso come il secondo uno. È un errore di battitura? – dhke

+0

Oops! Sì, quello era un errore di battitura. Fisso. – okoboko

risposta

19

Aggiungere una seconda sezione con un nome attività diverso. Se due attività hanno lo stesso nome di attività, quest'ultima sovrascrive la prima.

[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 

È inoltre possibile raggrupparli in modo da entrambi i compiti ottenere riavviato come gruppo:

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