Manlio Perillo wrote:
>>> La soluzione più semplice per integrare twisted.web2 con Django è usare
>>> twisted.web2.wsgi, peccato che esegua l'applicazione in un thread e
>>> questo a Django non piace (anche se non capisco perchè, probabilmente
>>> colpa dell'ORM).

> Nicola Larosa ha scritto:
>> Che vuoi dire? Non funziona?

> Non lo so ma nella documentazione per il deployment su mod_python
> consigliano esplicitamente di non usare l'MPM worker di Apache.

Credo sia un misunderstanding. Mesi fa sono stati scoperti dei bachi usando
mod_python su Apache con MPM. Credevo fossero stati risolti, ma comunque si
tratta di un deployment in cui l'interprete Python gira dentro Apache, e le
request vengono assegnate a dei thread di quell'interprete.

Questo non significa che tutti gli altri deployment che usano i thread,
come quelli tramite WSGI, siano soggetti agli stessi bachi, cosa che non mi
risulta.

Ovviamente l'ideale, usando Twisted, sarebbe di non usare per niente i
thread, o almeno limitarli all'indispensabile, come l'accesso al database.
In quel caso non si può passare per WSGI, che non supporta gli eventi
asincroni, ma bisogna scrivere un apposito handler di Django usando
oculatamente i Deferred di Twisted (magari completando quello già iniziato
che mi ritrovo casualmente sul disco ;-D ).

A quel punto l'intera architettura è asincrona, tranne le parti dove si
continuano a usare i thread, e bisogna seguire ovunque il principio guida
di Twisted di non scrivere codice bloccante.


-- 
Nicola Larosa - http://www.tekNico.net/

  I must add my voice here in strong opposition of the removal of
cryptoloop from the 2.6 series of [Linux] kernels. -- Brandon Low
  Maybe we can leave cryptoloop there with big "kindergarten crypto
- do not use" labels all over it. -- Andrew Morton, February 2004

_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a