Simple, light and nearly featureless database connection pool
Project description
DBCP Lite
A simple, light and nearly featureless database connection pool for Python.
Connections are added to the pool as needed up to max_size
in number.
Once added the connections will remain in the pool and no attempt is made
to shrink the pool. In most cases it is recommended to set
min_size == max_size
.
Usage
import cx_Oracle
from dbcp_lite import DBConnectionPool
connect_args = ('scott', 'tiger', 'dbhost.example.com/orcl')
pool = DBConnectionPool(cx_Oracle.connect,
create_args=connect_args,
create_kwargs={'threaded': False},
min_size=1,
max_size=4,
name='scott@orcl')
with pool.acquire() as connection:
...
with pool.acquire_cursor() as cursor:
...
pool.close()
The acquire_cursor()
is a convenience method that returns a Cursor
using a
Connection
from the pool. Upon successful completion commit()
will be
called on the Connection
and the Cursor
will be closed.
Timeouts
A timeout can be provided to various methods. If no connections are available to
be acquired
or closed
the methods will raise a PoolTimeout
exception.
Lifecycle Methods
The following lifecycle methods are called during normal operations and alternate implementations can be provided if needed to perform specialized setup or cleanup.
on_acquire(self, connection)
- no-op
on_return(self, connection)
- default implementation calls connection.rollback()
on_close(self, connection)
- default implementation calls connection.close()
For example, to implement auto-commit:
pool = ...
pool.on_return = lambda x: x.commit()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for dbcp_lite-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c9a1d991257d24d6128fbebafbf8fc6799300e87b533c5664f18a0bb290bbf6 |
|
MD5 | c2b49c0d508934f6a8f4e5e0454cb3fd |
|
BLAKE2b-256 | 129a053bf09a696fa0fdb9b5d61241bb5ef2c70c27c60b168da06a3a0169d1ea |