[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