2013-03-21 10 views
7

Sto lavorando con djcelery e supervisore. Gestivo un sedano con supervisore e tutto ha funzionato bene, una volta che ho capito che avevo bisogno di cambiarlo in sedano multi, tutto si è rotto. Se eseguo celeryd_multi in un terminale funziona ma viene sempre eseguito in background, come il supervisore ha bisogno che il comando venga eseguito in primo piano là dove si trova il problema.In esecuzione celeryd_multi con supervisore

Questo è il mio celery.ini:

[program:celery_{{ division }}] 
command = {{ virtualenv_bin_dir }}/python manage.py celeryd_multi start default mailchimp -c:mailchimp 3 -c:default 5 --loglevel=info --logfile={{ log_dir }}/celery/%n.log --pidfile={{ run_dir }}/celery/%n.pid --schedule=/home/celery/celerybeat-schedule --settings={{ django_settings_python_path }} 
autorestart = false 
autostart = false 
directory = {{ repo_dir }}/{{ division }} 
user=celery 
numprocs = 1 
redirect_stderr = True 
stopwaitsecs = 10 
startsecs = 10 
priority = 997 
startretries = 3 

Ecco il comando ho messo nel terminale che funziona bene

python manage.py celeryd_multi start default mailchimp -c:mailchimp 3 -c:default 5 --loglevel=info --logfile=/var/log/celery/%n.log --pidfile=/var/log/celery/%n.pid --schedule=/home/celery/celerybeat-schedule --settings=lively.settings_gunicorn

risposta

7

Reply from the main developer of celery (23 mar 2012):

Non sono a conoscenza di alcuna soluzione semplice per avviare più istan celeryd ces utilizzando supervisore, ma è sempre possibile utilizzare una configurazione per ciascuno. Forse qualcuno altro ha una soluzione per questo però.

Lo script generico-init.d/celeryd utilizza celeryd-Multi per avviare più server, ed è possibile utilizzare le variabili CELERYD_NODES /etc/init.d/celeryd per impostare un numero, o un elenco di nomi dei lavoratori . io non sono sicuro di come supervisord potrebbe essere fatto per lavorare con celeryd-multi, come sarebbe probabilmente bisogno di sapere quale dei PID risultanti dovrebbero essere monitorati o no (forse un plugin supervisord potrebbe essere scritto?)

- Chiedi a Solem

0

Daemontools ha un'utilità chiamata fghack progettata per fare in modo che un processo in background "rimanga" in primo piano.

pidsig presumibilmente è simile, ma proxy segnali:

http://permalink.gmane.org/gmane.comp.sysutils.supervision.general/2010 

https://github.com/chexum/pidsig/blob/master/pidsig.c 

Credo entrambi sono fondamentalmente wrapper che attendono sui bambini è in background.

Problemi correlati