mirror of
https://github.com/insistence/RuoYi-Vue3-FastAPI.git
synced 2026-10-13 04:39:37 +00:00
* feat: 定时任务新增redis分布式锁以在多worker下正常运行 * refactor: 重构日志系统以支持多worker * perf: 增强scheduler在多worker下的调度机制 * perf: 增强锁丢失调度逻辑与异常容错 * perf: 优化trace中间件和日志打印显示 * chore: 更新.gitignore规则 * perf: 优化database的engine和session创建方法 * perf: 优化scheduler内部的sqlalchemy日志显示 * perf: 优化scheduler和应用生命周期 * fix: 修复重新获取锁时重复调用的问题 * perf: 优化函数无用参数 * perf: 优化env配置 * fix: 修复lint错误
38 lines
916 B
Python
38 lines
916 B
Python
from collections.abc import AsyncGenerator
|
|
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from config.database import AsyncSessionLocal, Base, async_engine
|
|
from utils.log_util import logger
|
|
|
|
|
|
async def get_db() -> AsyncGenerator[AsyncSession, None]:
|
|
"""
|
|
每一个请求处理完毕后会关闭当前连接,不同的请求使用不同的连接
|
|
|
|
:return:
|
|
"""
|
|
async with AsyncSessionLocal() as current_db:
|
|
yield current_db
|
|
|
|
|
|
async def init_create_table() -> None:
|
|
"""
|
|
应用启动时初始化数据库连接
|
|
|
|
:return:
|
|
"""
|
|
logger.info('🔎 初始化数据库连接...')
|
|
async with async_engine.begin() as conn:
|
|
await conn.run_sync(Base.metadata.create_all)
|
|
logger.info('✅️ 数据库连接成功')
|
|
|
|
|
|
async def close_async_engine() -> None:
|
|
"""
|
|
应用关闭时释放数据库连接池
|
|
|
|
:return:
|
|
"""
|
|
await async_engine.dispose()
|