РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
91 of 711 menu

Класс QueuePool

Класс QueuePool представляет собой пул соединений с базой данных, в котором соединения хранятся в очереди и выдаются по мере необходимости. Это пул по умолчанию для большинства движков баз данных. Первым параметром передаётся функция создания соединения, а также поддерживаются параметры pool_size, max_overflow, timeout и recycle, которые управляют размером пула и временем жизни соединений.

Синтаксис

QueuePool(creator, pool_size=5, max_overflow=10, timeout=30, recycle=-1)

Пример

Давайте создадим движок с явным использованием пула QueuePool и посмотрим на его параметры:

from sqlalchemy import create_engine from sqlalchemy.pool import QueuePool engine = create_engine( 'sqlite:///:memory:', poolclass=QueuePool, pool_size=5, max_overflow=10 ) print(engine.pool) print(engine.pool.size())

Результат выполнения кода:

"<sqlalchemy.pool.impl.QueuePool object at ...>" "5"

Пример

Давайте откроем соединение и проверим состояние пула:

from sqlalchemy import create_engine, text from sqlalchemy.pool import QueuePool engine = create_engine( 'sqlite:///:memory:', poolclass=QueuePool, pool_size=5 ) with engine.connect() as conn: conn.execute(text('SELECT 1')) print(engine.pool.status())

Результат выполнения кода:

"Pool size: 5 Connections in pool: 1 Current Overflow: -4 Current Checked out connections: 0"

Итоговый SQL запрос:

SELECT 1

Смотрите также

  • функцию create_engine,
    которая создает движок с пулом соединений
  • класс NullPool,
    который отключает пулирование соединений
  • класс StaticPool,
    который использует одно соединение для всех запросов
  • функцию create_pool_from_url,
    которая создает пул из строки URL
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить