On Thu, Jun 3, 2010 at 9:52 PM, afrotypa <[email protected]> wrote: > For a while I have been toying with the idea of developing/running a > database (postgresql backend) driven WSGI app using an async python > WSGI server such as gevent. > > Now that the newer psycopg2 (>=2.2.0) drivers provide coroutine > support (via a hook which makes c extension database drivers co- > routine friendly) I am looking to try gevent out as soon as I can > figure out how to integrate gevent and sqlalchemy. > > In theory it should be possible to run blocking SQLAlchemy queries in > a spawned greenlet using an async DB API 2.0 driver such as psycopg2. > Blocking only the greenlet handling the specific request. > > See the following URL for details of coroutine support in psycopg2:- > > http://bitbucket.org/dvarrazzo/psycogreen/wiki/Home > > An example of a wait call back implementation for gevent is here :- > > http://bitbucket.org/dvarrazzo/psycogreen/src/tip/gevent/psyco_gevent.py > > My question is what is a good pattern for using SQLAlchemy with a co- > routine library such as gevent in a pylons based WSGI app.? > > For starters how do I configure the SQLAlchemy connection pool to > create async connections only?. > > i.e. > > Write a custom getconn method and passing async=True to > psycopg2.connect? > > Or > > pass connect_args to create_engine?. > > Assuming gevent spawns a greenlet to handle each WSGI request, I think > SQLAlchemy should just work as usual in this situation, since the > scopedSession would ensure that a different SQLAlchemy session is used > for each request. Is this a reasonable assumption to make about this?. > > If I wanted to run multiple independent queries (each in its own > greenlet) in the same pylons request, it appears I would have to > explicitly create an sqlalchemy session for each greenlet instance in > this case. Is this the case? > > Am I missing something very important here? > > Hopefully someone here might be able to shed some more light into all > this. > > -- > You received this message because you are subscribed to the Google Groups > "pylons-discuss" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/pylons-discuss?hl=en. > >
I'm also very interested in the answer to this question. -- Yang Zhang http://yz.mit.edu/ -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/pylons-discuss?hl=en.
