Sono la creazione di un server per ospitare un app Django che ha:Supervisord: c'è un modo per ricaricare un bambino?
uWSGI
app avviato da init uWSGI sceneggiatura di ubuntuceleryd
iniziato dasupervisord
Così sto scrivendo un distribuire script che sarà: codice
- tirare da git
- Migrazione del DB
- Dì al
uWSGI
di riavviarsi, quindi riprenderà il nuovo codice. - Dì al
celeryd
di riavviare, quindi riprenderà anche il nuovo codice.
uWSGI
ha questa funzione di configurazione:
touch-reload
gracefully reload the uWSGI stack when a file/directory changes.
Quindi il mio script è eseguito dall'utente non privilegiato in cui vengono eseguiti tutti i processi della app.
Per riavviare uWSGI
Posso semplicemente touch ~/.restart_uwsgi
.
C'è un modo che io possa fare la stessa cosa per l'esecuzione in celeryd
supervisord
senza concedere l'accesso sudo per l'utente senza privilegi, così da poter supervisorctl restart celeryd
?
Penso che un piccolo Listener di eventi sia una soluzione migliore: http://stackoverflow.com/questions/20227965/is-there-a-way-toautomatically-reload-supervisor-processes/20298885#20298885 – soulseekah
I Ho visto alcuni sviluppatori di django/python che usano i processi di supervisione in esecuzione in userspace, invece di usare l'installazione globale '/ etc /'. che ha reso facile l'aggiornamento/aggiornamento. – patroqueeet