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

Rispondere a