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

Alessandro Dentella sandro a e-den.it
Lun 22 Set 2014 11:55:25 CEST


Ciao a tutti,


sto cercando la configrazione ottimale per fare partire celery con
django in produzione.

Uso nginx + uwsgi per l'applicazione principale e credevo leggendo [1]
[2] che smart-attach-daemon avrebbe potuo risolvere il problema di
garantirmi che un reload di uwsgi (uwsgi --reload) inviasse un segnale
al processo di celery.

Forse ho compreso male la documentazione che in effetti non dice
esplicitamente cosa dovrebbe succedere ma solo ::


  Pidfile governed processes can survive death or reload of the master
  so long as their pidfiles are available and the pid contained
  therein matches a running pid. This is the best choice for processes
  requiring longer persistence, and for which a brutal kill could mean
  loss of data such as a database.

Avendo messo una mia script di test non vedo arrivare alcun
segnale. Mi sbaglio? che dovrebbe succedere veramente con
smart-attach-daemon? 

La parte che reputo interessante della conf di uwsgi è questa::

  env = DJANGO_SETTINGS_MODULE=web.settings
  env = HOME=/tmp
  master = true
  module = django.core.handlers.wsgi:WSGIHandler()
  prj_dir = /home/www/office.cogema.it
  celery_pid = /var/run/uwsgi/cogema-celery.pid
  home  = %(prj_dir)/parts/vpython

  smart-attach-daemon = %(celery_pid) /usr/local/sbin/test-signals.py %(celery_pid)

test-signals.py logga ogni segnale che invio con kill, e non logga
nulla quando lancio uwsgi --reload



sandro
*:-)





[1] http://uwsgi-docs.readthedocs.org/en/latest/Options.html#smart-attach-daemon
[2] http://uwsgi-docs.readthedocs.org/en/latest/AttachingDaemons.html

-- 
Sandro Dentella  *:-)
http://www.reteisi.org             Soluzioni libere per le scuole
http://sqlkit.argolinux.org        SQLkit home page - PyGTK/python/sqlalchemy





Maggiori informazioni sulla lista Python