Skip to main content

AsyncIO connection pool for RethinkDB

Project description

https://img.shields.io/pypi/v/async-repool.svg https://img.shields.io/pypi/l/async-repool.svg https://gitlab.com/AnjiProject/async-repool/badges/master/build.svg

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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

async_repool-0.3.1-py2.py3-none-any.whl (5.4 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page