From: | Samuel PHAN <samuel(at)nomao(dot)com> |
---|---|
To: | Frank Broniewski <brfr(at)metrico(dot)lu> |
Cc: | psycopg(at)postgresql(dot)org |
Subject: | Re: Connection pooling and with statement |
Date: | 2013-08-23 11:58:10 |
Message-ID: | CAC4O=aktEE+rzRDT9ad9+ZKy_z-hSEWA_+V93rfZcqLvf7WTmA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | psycopg |
Hey Frank,
My advice for the pool, is to use *pg_bouncer*. Thus, your WSGI application
can focus on working on your business, and not manage technical
optimization.
The only difference you need to pay attention in your code is to release
the PG connection properly for the next client (make a rollback()).
In the code to process an HTTP request, you should have something to
release the allocated resources (like PG connection). Let's say that you
have a Controller class, at the end of the HTTP request processing, you
could have something like this:
if self.conn.get_transaction_status() > 0:
self.conn.rollback()
self.conn.close()
Cheers,
Sam
On Fri, Aug 23, 2013 at 12:03 PM, Frank Broniewski <brfr(at)metrico(dot)lu> wrote:
> Hi,
>
> I want to use psycopg2 in a WSGI environment. There you can have a
> (configurable) number of processes and threads created that would be
> accessing the database. Now I wonder what might be the best practice to
> implement the pool. I don't think it is practicable to create the pool in
> the WSGI application since this would create a number of pools for each
> process and/or threads.
>
> Or is the pool class simply not suitable for such a task?
>
> Another question that occured to me is how I use the with statement with
> the pool class:
>
> I can do:
> with pool.getconn() as conn:
> with conn.cursor() as cursor:
> # do stuff
>
> Where do I need to call pool.putconn(conn)? How does the with statement
> affect the connection? Is the with statement suitable for connection
> pooling at all?
>
> Many thanks,
>
> Frank
>
>
> --
> Frank BRONIEWSKI
>
> METRICO s.à r.l.
> géomètres
> technologies d'information géographique
> rue des Romains 36
> L-5433 NIEDERDONVEN
>
> tél.: +352 26 74 94 - 28
> fax.: +352 26 74 94 99
> http://www.metrico.lu
>
>
> --
> Sent via psycopg mailing list (psycopg(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/**mailpref/psycopg<http://www.postgresql.org/mailpref/psycopg>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Julian | 2013-08-23 14:19:58 | Re: Connection pooling and with statement |
Previous Message | Frank Broniewski | 2013-08-23 10:03:57 | Connection pooling and with statement |