Class TransactionPingingPool (3.30.0)

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

Concrete session pool implementation:

Deprecated: TransactionPingingPool no longer begins a transaction for each of its sessions at startup. Hence the TransactionPingingPool is same as PingingPool and maybe removed in the future.

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.

database_role str

(Optional) user-assigned database_role for the session.

Methods

TransactionPingingPool

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

This throws a deprecation warning on initialization.

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 to create sessions when needed.

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
`queue.Fullif the queue is full.