Nicola Larosa ha scritto:
[EMAIL PROTECTED] wrote:
The worst thing about the current web confusion is that I think Twisted
would be that much *more* powerful if projects like Django could build
upon it; being the common lower-level of django, zope, cherrypy,
turbogears, and whatever else, would draw a lot of interest for Twisted,
and eliminate the need for the "don't use this piece of crap in a real
deployment" webservers that many of those projects currently come with.

Better integration between Twisted and Django has been on my todo list for
quite a while. The current integration is done via WSGI and multithreading
each whole request, which is not exactly the way one would like to use
Twisted. ;-) Integration between Twisted and Zope is also currently done by
multithreading each whole request, AFAIK.

Unfortunately Django code may block anywhere, so there's a lot of work
trying to segment it in blocking and non-blocking parts, and hiding the
blocking ones behind deferToThread calls.


Maybe it can be of interest my work on adding asynchronous support in WSGI.

I'm developing a WSGI module for the Nginx web server:
http://hg.mperillo.ath.cx/nginx/mod_wsgi/

The great advantage of Nginx over Twisted is it's support for multiple worker processes; this helps a lot with application "reloading" and for better support of I/O bound applications.

However the number of worker processes is fixed, so if your application will wait "a lot" on I/O (like an HTTP request to a web application on the Internet) its a problem (well, this is a problem with preforked or multithreaded servers, too!).

So I have implemented a `ngx.poll` extension.
Some details can be found here:
http://mail.python.org/pipermail/web-sig/2008-March/003291.html

I'm fixing the latest problems, before pushing changes in the public repository.

I think that having a "pure" asynchronous WSGI implementation in Twisted Web that implements this extension can be a good starting point for trying to standardize asynchronous web applications.


P.S.: the wsgi.pause_output extension, proposed some years ago here by Donovan Preston should be very easy to implement using ngx.poll, and a pipe.





Regards   Manlio Perillo

_______________________________________________
Twisted-web mailing list
[email protected]
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web

Reply via email to