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

Атрибут pool класса AsyncEngine

Атрибут pool класса AsyncEngine возвращает объект пула соединений, связанный с асинхронным движком. Пул управляет переиспользованием соединений с базой данных, ограничивает их количество и хранит настройки подключения. Через этот атрибут можно получить доступ к внутренним параметрам пула, таким как класс пула, размер, таймауты и статистика использования.

Атрибут доступен только для чтения и не принимает параметров. Он возвращает экземпляр пула, соответствующий используемому диалекту и настройкам, переданным при создании движка.

Синтаксис

async_engine.pool

Пример

Давайте создадим асинхронный движок для базы SQLite в памяти и посмотрим на объект пула:

from sqlalchemy.ext.asyncio import create_async_engine engine = create_async_engine('sqlite+aiosqlite:///:memory:') print(engine.pool)

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

"<sqlalchemy.pool.impl.AsyncAdaptedQueuePool object at 0x...>"

Пример

Давайте получим класс пула и его основные параметры:

from sqlalchemy.ext.asyncio import create_async_engine engine = create_async_engine('sqlite+aiosqlite:///:memory:') pool = engine.pool print(type(pool).__name__) print(pool.size()) print(pool.checkedout())

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

"AsyncAdaptedQueuePool" "5" "0"

Пример

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

from sqlalchemy.ext.asyncio import create_async_engine engine = create_async_engine( 'sqlite+aiosqlite:///:memory:', pool_size=10, max_overflow=20 ) print(engine.pool.size()) print(engine.pool.overflow())

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

"10" "0"

Пример

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

import asyncio from sqlalchemy import text from sqlalchemy.ext.asyncio import create_async_engine async def main(): engine = create_async_engine('sqlite+aiosqlite:///:memory:') async with engine.connect() as conn: await conn.execute(text('SELECT 1')) print(engine.pool.checkedout()) print(engine.pool.checkedout()) await engine.dispose() asyncio.run(main())

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

"1" "0"

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

  • класс AsyncEngine,
    который представляет асинхронный движок базы данных
  • атрибут sync_engine,
    который возвращает синхронный движок
  • метод dispose,
    который закрывает пул соединений
  • атрибут dialect,
    который возвращает используемый диалект СУБД
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить