[Python] celery, uwsgi & smart-attach-daemon

Alessandro Dentella sandro a e-den.it
Gio 25 Set 2014 11:26:38 CEST


> >> Eventualmente con attach-daemon2 hai un controllo maggiore sul
> >> comportamento:
> >>
> >> https://github.com/unbit/uwsgi-docs/blob/master/AttachingDaemons.rst#--attach-daemon2
> >
> > Sarebbe esattamente quello che cerco, ma non riesco assolutamente a
> > vedere alcun segnale.
> >
> > La mia conf è:
> >
> > celery_pid = /var/run/uwsgi/cogema-celery.pid
> > attach-daemon2 = cmd=/usr/local/sbin/test-signals.py
> > %(celery_pid),pidfile=%(celery_pid),stopsignal=3,reloadsignal=15
> >
> > La script test-signals.py è riportata in fondo.
> > Quando io faccio partire uwsgi nei log leggo:
> >
> > [uwsgi-daemons] found valid/active pidfile for
> > "/usr/local/sbin/test-signals.py /var/run/uwsgi/cogema-celery.pid" (pid:
> > 31952)
> >
> > Ma poi nessun segnale arriva al processo test-signals.py. Se da
> > console per prova eseguo kill -3 31952, vedo subito il log del segnale
> > arrivato.
> >
> >
> 
> 
> --attach-daemon2 (e piu' in generale tutte le opzioni che finiscono con
> '2') sono le versioni user-unfriendly :P che ti permettono di modificare i
> pattern prestabiliti agendo direttamente sulle strutture interne.
> 
> Nel caso specifico, settando un pidfile stai forzando la modalita' smart,
> che non e' quella che vuoi tu.
> 
> cmd=/usr/local/sbin/test-signals.py,stopsignal=3,reloadsignal=15
> 
> e' sufficiente a fare quello che vuoi.


Ci sono quasi. Reload ora arriva, ma restart passa ancora lo stesso
segnale di reload::

   root a thunder-dev:/home/www/office.cogema.it# grep attach /etc/uwsgi/cogema.ini
   attach-daemon2 = cmd=/usr/local/sbin/test-signals.py  %(celery_pid),stopsignal=3,reloadsignal=15
   root a thunder-dev:/home/www/office.cogema.it# cat /tmp/sig.log 
   root a thunder-dev:/home/www/office.cogema.it# /usr/bin/loca
   localc            locale            localedef         locate            locate.findutils  
   root a thunder-dev:/home/www/office.cogema.it# /usr/local/bin/uwsgi --reload /var/run/uwsgi/cogema.pid 
   root a thunder-dev:/home/www/office.cogema.it# cat /tmp/sig.log 
   3 
   root a thunder-dev:/home/www/office.cogema.it# /usr/local/bin/uwsgi --stop /var/run/uwsgi/cogema.pid 
   root a thunder-dev:/home/www/office.cogema.it# cat /tmp/sig.log 
   3 
   3 

sandro
*:-)


Maggiori informazioni sulla lista Python