[Python] Deploy con nginx e proxy_pass
Manlio Perillo
manlio.perillo a gmail.com
Ven 3 Gen 2014 12:45:02 CET
On 03/01/2014 12:34, Alessandro Dentella wrote:
> [...]
> La nostra simulazione è stata fatta con 2 funzioni: is_up e blocking che usa
> time.sleep()
>
> class IsUp(tornado.web.RequestHandler):
> def get(self):
> self.write("Is Up Porta %d" ...)
> self.finish()
>
> class Blocking(tornado.web.RequestHandler):
> def get(self, numero=10):
> time.sleep(int(numero))
> self.write("Bloccato Porta %s\n" % options.port)
> self.finish()
>
> la chiamata usando 'wget -q -O - http://ngtest/blocking/30/' ed
> interrompendolo con Control-c.
Ok.
Ma quante instanze di tornado hai attive?
Se ne hai attiva una sola, mi sembra ovvio che blocca tutto.
Se ne hai N, facendo N richieste di questo genere blocchi ancora tutto.
> In un terminale separato in ciclo di 'wget -q -O - http://ngtest/is_up'
> Il ciclo si blocca nel momento della interruzione e riprende solo quando
> termita il tempo (e quindi il processo si libera)
>
Che ciclo?
> [...]
Per concludere, tieni conto che usare cose come Tornado è tutt'altro che
banale. Tutto lo stack (applicazione + framework + eventuali librerie)
deve essere sviluppato con la programmazione asincrona in mente. E'
vero che ci sono dei monkey patch per alcune funzioni della libreria
standard, ma non ritengo sia saggio affidarsi ciecamente a loro. Python
e la libreria standard semplicemente non sono pensati per un ambiente a
green thread.
Ciao Manlio
Maggiori informazioni sulla lista
Python