On 2012-10-03 19:39, Manlio Perillo wrote:
Il 03/10/2012 13:24, Daniele Varrazzo ha scritto:
Lo uso per fare il reload live del codice in un server web con uno
stato
enorme e che in certi momenti non può permettersi di perdere i
secondi
necessari a riavviarsi.
Invece di fare queste cose abbastanza dubbie, meglio affidarsi al
sistema operativo.
Nginx, ad esempio, ha un processo master + N workers.
Se devi fare il reload live del codice, ti basta far partire N nuovi
workers e killare i vecchi workers, dopo che hanno finito di servire
le
connessioni attive.
Il problema (mio e forse anche di Pietro) è quello di mantenere lo
stato, non di finire di servire le sessioni attive. Quello che dici va
bene per un processo senza stato. Ricaricare il codice al volo è anche
comodo in fase di sviluppo e debug, quando ricaricare il servizio
potrebbe essere troppo lento (minuti invece di frazioni di secondo) o
distruggere uno stato corrotto che uno vuole debuggare.
Insomma probabilmente non è un metodo ortodosso, ma si può fare, quando
serve fa comodo ed è la risposta alla domanda di Pietro. Secondo me vale
la pena *sapere* che si può fare, non che lo debbano fare tutti ogni
giorno.
--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python