"""asyncpg 连接池管理 —— engine 模块对 TimescaleDB 的唯一切入点。""" import asyncpg from engine.config.settings import DB_DSN, db as db_config _pool: asyncpg.Pool | None = None async def get_pool() -> asyncpg.Pool: """获取或创建 asyncpg 连接池(懒初始化,复用)。""" global _pool if _pool is None: _pool = await asyncpg.create_pool( dsn=DB_DSN, min_size=2, max_size=10, command_timeout=30, server_settings={"default_transaction_read_only": "on"}, ) return _pool async def close_pool() -> None: """关闭连接池(应用退出时调用)""" global _pool if _pool: await _pool.close() _pool = None