Class TransactionPingingPool (1.16.0)

TransactionPingingPool(
    size=10, default_timeout=10, ping_interval=3000, labels=None
)

Concrete session pool implementation:

In addition to the features of PingingPool, this class creates and begins a transaction for each of its sessions at startup.

When a session is returned to the pool, if its transaction has been committed or rolled back, the pool creates a new transaction for the session and pushes the transaction onto a separate queue of "transactions to begin." The application is responsible for flushing this queue as appropriate via the pool's begin_pending_transactions method.

Parameters

NameDescription
size int

fixed pool size

default_timeout int

default timeout, in seconds, to wait for a returned session.

ping_interval int

interval at which to ping sessions.

labels dict (str -> str) or None

(Optional) user-assigned labels for sessions created by the pool.

Properties

labels

User-assigned labels for sesions created by the pool.

Returns
TypeDescription
dict (str -> str)labels assigned by the user

Methods

begin_pending_transactions

begin_pending_transactions()

Begin all transactions for sessions added to the pool.

bind

bind(database)

Associate the pool with a database.

Parameter
NameDescription
database Database

database used by the pool: used to create sessions when needed.

clear

clear()

Delete all sessions in the pool.

get

get(timeout=None)

Check a session out from the pool.

Parameter
NameDescription
timeout int

seconds to block waiting for an available session

Exceptions
TypeDescription
`six.moves.queue.Emptyif the queue is empty.
Returns
TypeDescription
Sessionan existing session from the pool, or a newly-created session.

ping

ping()

Refresh maybe-expired sessions in the pool.

This method is designed to be called from a background thread, or during the "idle" phase of an event loop.

put

put(session)

Return a session to the pool.

Never blocks: if the pool is full, raises.

Parameter
NameDescription
session Session

the session being returned.

Exceptions
TypeDescription
`six.moves.queue.Fullif the queue is full.

session

session(**kwargs)

Check out a session from the pool.

Returns
TypeDescription
SessionCheckouta checkout instance, to be used as a context manager for accessing the session and returning it to the pool.