[Python] web: sync vs. async
Daniele Varrazzo
piro a develer.com
Ven 2 Dic 2011 23:25:30 CET
On Fri, 02 Dec 2011 22:53:17 +0100, Manlio Perillo wrote:
> Usando thread o processi?
> Che tipo di hardware e che web server (nel caso di applicazioni web)?
> Quante connessioni concorrenti?
>
> Infine una curiosità: assumendo che sia il vecchio che il nuovo
> application server offrano WSGI e che nel nuovo usi greenlet, quanto
> impegno ha preso la riscrittura dell'applicazione?
No, l'assunzione è sbagliata. I nostri programmi non sempre sono
classici programmi web, non abbiamo il tipico "tanti client web da far
scalare". La concorrenza ce l'abbiamo su problemi da risolvere
contemporaneamente in un ambiente event-driven: non c'è wsgi di mezzo.
Una nostra architettura "tipica" potrebbe essere un controller scritto
in eventlet e uno sfacelo di slave esterni, ognuno in un processo. Il
controller è una delle tipiche cose scritte originalmente con i thread e
che oltre i 15-20 slave trova un muro.
> Splittarlo su N processi fissi: quindi mi aspetto che Apache +
> mod_wsgi
> con N processi worker non abbia troppi problemi.
>
> Magari mi aspetto troppo da Apache, ma se la tua soluzione funziona e
> Apache no, significa che mi sono perso qualcosa.
Il problema non è apache, quello ha ben poco da fare. Il problema è
solo fare concorrenza con python, per la qual cosa i thread non vanno
bene, indipendentemente da wsgi che ci metti in mezzo, che è solo un
protocollo.
--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
Maggiori informazioni sulla lista
Python