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 |
|
|---|---|
| Name | Description |
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. |
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 | |
|---|---|
| Name | Description |
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 | |
|---|---|
| Name | Description |
session |
Session
the session being returned. |
| Exceptions | |
|---|---|
| Type | Description |
`six.moves.queue.Full |
if the queue is full. |