Class FixedSizePool (3.1.0)

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.exists before returning them, and replaces expired sessions.

  • Blocks, with a timeout, when get is called on an empty pool. Raises after timing out.

  • Raises when put is called on a full pool. That error is never expected in normal practice, as users should be calling get followed by put whenever 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.

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.