Атрибут 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,
который возвращает используемый диалект СУБД