fix: 修复练习结束时的DetachedInstanceError
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
- 在第二次commit后refresh session对象 - 避免异步session管理导致的对象脱离错误
This commit is contained in:
@@ -724,8 +724,15 @@ async def end_practice_session(
|
||||
new_badges = await badge_service.check_and_award_badges(current_user.id)
|
||||
|
||||
await db.commit()
|
||||
# 第二次commit后需要refresh,避免DetachedInstanceError
|
||||
await db.refresh(session)
|
||||
except Exception as e:
|
||||
logger.warning(f"练习经验值/奖章处理失败: {str(e)}")
|
||||
# 确保 session 仍然可用
|
||||
try:
|
||||
await db.refresh(session)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
return ResponseModel(
|
||||
code=200,
|
||||
|
||||
Reference in New Issue
Block a user