- 3.58.0 (latest)
- 3.57.0
- 3.56.0
- 3.55.0
- 3.54.0
- 3.53.0
- 3.52.0
- 3.51.0
- 3.50.1
- 3.46.0
- 3.45.0
- 3.44.0
- 3.43.0
- 3.42.0
- 3.41.0
- 3.40.1
- 3.39.0
- 3.38.0
- 3.37.0
- 3.36.0
- 3.35.1
- 3.34.0
- 3.33.0
- 3.32.0
- 3.31.0
- 3.30.0
- 3.29.0
- 3.28.0
- 3.27.1
- 3.26.0
- 3.25.0
- 3.24.0
- 3.23.0
- 3.22.2
- 3.21.0
- 3.20.0
- 3.19.0
- 3.18.0
- 3.17.0
- 3.16.0
- 3.15.1
- 3.14.1
- 3.13.0
- 3.12.1
- 3.11.1
- 3.10.0
- 3.9.0
- 3.8.0
- 3.7.0
- 3.6.0
- 3.5.0
- 3.4.0
- 3.3.0
- 3.2.0
- 3.1.0
- 3.0.0
- 2.1.1
- 2.0.0
- 1.19.3
- 1.18.0
- 1.17.1
- 1.16.0
- 1.15.1
- 1.14.0
- 1.13.0
- 1.12.0
- 1.11.0
- 1.10.0
Pools managing shared Session objects.
Classes
AbstractSessionPool
AbstractSessionPool(labels=None, database_role=None)Specifies required API for concrete session pool implementations.
| Parameters | |
|---|---|
| Name | Description |
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. |
BurstyPool
BurstyPool(target_size=10, labels=None, database_role=None)Concrete session pool implementation:
"Pings" existing sessions via
session.existsbefore returning them.Creates a new session, rather than blocking, when
getis called on an empty pool.Discards the returned session, rather than blocking, when
putis called on a full pool.
| Parameters | |
|---|---|
| Name | Description |
target_size |
int
max pool size |
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. |
FixedSizePool
FixedSizePool(size=10, default_timeout=10, labels=None, database_role=None)Concrete session pool implementation:
Pre-allocates / creates a fixed number of sessions.
"Pings" existing sessions via
session.existsbefore returning them, and replaces expired sessions.Blocks, with a timeout, when
getis called on an empty pool. Raises after timing out.Raises when
putis called on a full pool. That error is never expected in normal practice, as users should be callinggetfollowed byputwhenever in need of a session.
| Parameters | |
|---|---|
| Name | Description |
size |
int
fixed pool size |
default_timeout |
int
default timeout, in seconds, to wait for a returned session. |
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. |
PingingPool
PingingPool(
size=10, default_timeout=10, ping_interval=3000, labels=None, database_role=None
)Concrete session pool implementation:
Pre-allocates / creates a fixed number of sessions.
Sessions are used in "round-robin" order (LRU first).
"Pings" existing sessions in the background after a specified interval via an API call (
session.ping()).Blocks, with a timeout, when
getis called on an empty pool. Raises after timing out.Raises when
putis called on a full pool. That error is never expected in normal practice, as users should be callinggetfollowed byputwhenever in need of a session.
The application is responsible for calling ping at appropriate
times, e.g. from a background thread.
| 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. |
database_role |
str
(Optional) user-assigned database_role for the session. |
SessionCheckout
SessionCheckout(pool, **kwargs)Context manager: hold session checked out from a pool.
| Parameter | |
|---|---|
| Name | Description |
pool |
concrete subclass of AbstractSessionPool
Pool from which to check out a session. |
TransactionPingingPool
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 | |
|---|---|
| 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. |
database_role |
str
(Optional) user-assigned database_role for the session. |