资料
1.Fastapi 项目第二天首次访问时数据库连接报错问题Can't connect to MySQL server - 上海-悠悠 - 博客园2.Peewee_同步/异步/断线重连/连接池 - Alex-GCX - 博客园
3.【Python】SQLAlchemy长时间未请求,数据库连接断开的原因、解决方案_sqlalchemy session长期不访问断开-CSDN博客
4.Python 之Mysql的异步操作库 aiomysql 使用说明手册 笔记_python aiomysql-CSDN博客
过程
注意到 异步sqlalchemy 默认使用数据库连接池,那么我们可以设置连接的断开,关闭,重连的设置
解决
from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine
from sqlalchemy.exc import OperationalErrorcreate_async_engine(url,pool_pre_ping=True # 启用连接前检查)while True:try:async with AsyncSessionLocal[engine_name]() as session:yield sessionbreak except OperationalError as e:print(f"connect error: {e}")await asyncio.sleep(2)