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-1.0.1-py2.py3-none-any.whl (6.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file async_repool-1.0.1-py2.py3-none-any.whl.

File metadata

  • Download URL: async_repool-1.0.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

File hashes

Hashes for async_repool-1.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 3977026c173bb68f03963e71538e5c85ca61f0baf92abe96e550613de79bb0ed
MD5 845186509c3584066bcd8f76e6d76074
BLAKE2b-256 9cdeff971df70bf6828c7b0f7b2b456573893e2f0b793a52cd10b55c5f3bb77e

See more details on using hashes here.

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