Je gère un travailleur Celery qui traite la file d'attente via le superviseur.
Voici mon /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
Comment ajouter cette deuxième commande à exécuter?
/var/worker/venv/bin/celery worker -A b_report_tasks -Q b_report_process --loglevel=INFO
J'ai essayé de séparer les deux commandes sur la même ligne avec &&
(A entraîné une erreur de syntaxe), en ajoutant une section [program:celery]
Entièrement distincte à ce même fichier (a entraîné la seule exécution de la première) et en créant un fichier celery1.conf
entièrement différent dans le même répertoire (seul le premier/premier fichier a été exécuté).
Ajoutez une deuxième section avec nom de tâche différent. Si deux tâches ont le même nom de tâche, cette dernière remplace la première.
[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
Vous pouvez également les regrouper afin que les deux tâches soient redémarrées en tant que groupe:
[group:celery-workers]
programs=celery,celeryb
priority=999