psycopg2.pool -- Connections pooling
module psycopg2.pool
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 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:
method 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.
method 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 with getconn().
method 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 SimpleConnectionPool
Note
This pool class is useful only for single-threaded applications.
class ThreadedConnectionPool
Note
This pool class can be safely used in multi-threaded applications.