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.

Reply via email to