Hi.

I have read some old posts about asynchronous applications support in WSGI:

http://comments.gmane.org/gmane.comp.python.twisted.web/2561?set_lines=100000
http://comments.gmane.org/gmane.comp.python.twisted.web/632?set_lines=100000


Since nginx *does* not supports threads, it is important to add 
extensions to WSGI to support asynchronous applications.


There are two solutions:
1) The applications returns something like environ['wsgi_not_yet_done']
    and produce its output using the write callable, and the finish
    callable when its done
2) The applications calls resume = environ['wsgi.pause_output'](), yield
    an empty strings, and then calls resume() to notify the server that
    it can call .next() again



1) should be very simple to implement, and it is easy to understand how 
to use it.

As an example, we can use some API that calls a callback function when 
the result is available:
conn.execute("SELECT * FROM test", query_callback)

def query_callback(row):
    write(row[...])


2) Can be implemented in mod_wsgi, however my problem is that I can't 
figure out how the application can yield some data available after a 
callback is called.



Thanks  Manlio Perillo
_______________________________________________
Web-SIG mailing list
Web-SIG@python.org
Web SIG: http://www.python.org/sigs/web-sig
Unsubscribe: 
http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com

Reply via email to