AsyncIO connection pool for RethinkDB
Project description
async-repool
is a Python library which provides a asyncio-based connection pool management for accessing a RethinkDB database. async-repool
creates and maintains a configurable pool of active connection to a RethinkDB database. These connections are then available individually through a basic API.
Internally, repool uses the Python AsyncIO Queue class which is not thread-safe. This means that the same connection pool cannot be share between several threads, please, use asyncio with process workers instead.
This is just asyncio-based clone of repool.
Installation
async-repool
is available as a python library on Pypi. Installation is very simple using pip :
$ pip install async_repool
This will install async-repool
as well as rethinkdb dependency.
Basic usage
A new connection pool using default connection configurations can simply be created by:
from async_repool import AsyncConnectionPool
pool = AsyncConnectionPool(dict()) # Required argument is kwargs for R.connect function
await pool.init_pool()
conn = await pool.acquire() #returns a Connection instance
await r.table('heroes').run(conn) #do RethinkDB stuff
# ...
pool.release(conn) #put back connection to the pool
await pool.release_pool() #release pool (close rethinkdb connections)
# ...
async with pool.connect() as conn1:
# do something with conn1
# pool.release(conn1) is automatically called after leaving the with code block
Optional arguments
AsyncConnectionPool
creation accepts a number of optional arguments:
pool_size
: set the pool size, ie. the number of connections opened simultaneously (default=3).connection_ttl
: set the connection time to live. Connections older than TTL are automatically closed and re-opened when acquire (default=3600 seconds, set to 0 for disable)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for async_repool-1.0.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3977026c173bb68f03963e71538e5c85ca61f0baf92abe96e550613de79bb0ed |
|
MD5 | 845186509c3584066bcd8f76e6d76074 |
|
BLAKE2b-256 | 9cdeff971df70bf6828c7b0f7b2b456573893e2f0b793a52cd10b55c5f3bb77e |