Skip to main content
Help us improve PyPI by participating in user testing. All experience levels needed!

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


Release history Release notifications

This version
History Node

0.3.1

History Node

0.3.0

History Node

0.2.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
async_repool-0.3.1-py2.py3-none-any.whl (5.4 kB) Copy SHA256 hash SHA256 Wheel py2.py3 May 30, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page