Class TransactionPingingPool (1.13.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

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.

Properties

labels

User-assigned labels for sesions created by the pool.

Returns
Type Description
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
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.

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
Name Description
session Session

the session being returned.

Exceptions
Type Description
`six.moves.queue.Full if the queue is full.

session

session(**kwargs)

Check out a session from the pool.

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

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025年12月16日 UTC.