FixedSizePool(size=10, default_timeout=10, labels=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. |
Methods
bind
bind(database)Associate the pool with a database.
| Parameter | |
|---|---|
| Name | Description |
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 | |
|---|---|
| Name | Description |
timeout |
int
seconds to block waiting for an available session |
| Exceptions | |
|---|---|
| Type | Description |
`six.moves.queue.Empty |
if the queue is empty. |
| Returns | |
|---|---|
| Type | Description |
Session |
an existing session from the pool, or a newly-created session. |
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. |