数据库连接问题
为什么你在每次访问数据库的时候都需要重新连接,我并没有看到缓存的信息,我是这样写的,我这样写会有什么问题吗? @lru_cache def get_async_engine(): return create_async_engine( SQLALCHEMY_ASYNC_DATABASE_URL, echo=False, pool_pre_ping=True, future=True, max_overflow=DataBaseConfig.DB_MAX_OVERFLOW, pool_size=DataBaseConfig.DB_POOL_SIZE, pool_recycle=DataBaseConfig.DB_RECYCLE, pool_timeout=DataBaseConfig.DB_POOL_TIMEOUT, )
@lru_cache def get_session_factory(): return async_sessionmaker( autocommit=False, bind=get_async_engine(), expire_on_commit=False, autoflush=False, class_=AsyncSession )
获取mysql句柄
async def session_getter() -> AsyncGenerator[AsyncSession, None]: session_factory = get_session_factory() async with session_factory() as session: # 调用工厂生成会话 async with session.begin(): yield session
路由
@router.get('', summary="banner", description="banner") async def banner( session: AsyncSession = Depends(session_getter) ): data = await BannerService.banner_list(session) return SuccessResponse(data)
我也发现数据库连接经常会中断,这样感觉很不好