psycopg2.pool
– Connections pooling¶
Creating new PostgreSQL connections can be an expensive operation. This module offers a few pure Python classes implementing simple connection pooling directly in the client application.
- class psycopg2.pool.AbstractConnectionPool(minconn, maxconn, \*args, \*\*kwargs)¶
Base class implementing generic key-based pooling code.
New minconn connections are created automatically. The pool will support a maximum of about maxconn connections. *args and **kwargs are passed to the
connect()
function.The following methods are expected to be implemented by subclasses:
- getconn(key=None)¶
Get a free connection from the pool.
The key parameter is optional: if used, the connection will be associated to the key and calling
getconn()
with the same key again will return the same connection.
- putconn(conn, key=None, close=False)¶
Put away a connection.
If close is
True
, discard the connection from the pool. key should be used consistently withgetconn()
.
- closeall()¶
Close all the connections handled by the pool.
Note that all the connections are closed, including ones eventually in use by the application.
The following classes are AbstractConnectionPool
subclasses ready to
be used.
- class psycopg2.pool.SimpleConnectionPool(minconn, maxconn, *args, **kwargs)¶
A connection pool that can’t be shared across different threads.
Note
This pool class is useful only for single-threaded applications.
- class psycopg2.pool.ThreadedConnectionPool(minconn, maxconn, *args, **kwargs)¶
A connection pool that works with the threading module.
Note
This pool class can be safely used in multi-threaded applications.