[Python] Reload di (parti di) un modulo in ipython

Daniele Varrazzo piro a develer.com
Mer 3 Ott 2012 21:35:08 CEST


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


Maggiori informazioni sulla lista Python