fix(backend): approval.py + byod.py 改用 settings.create_redis_client()
PR #3 (commit 9292f41) 引入的回归:get_redis() 用 `from app.main import redis_client`,
但 redis_client 是 lifespan 函数内的局部变量,永远不可跨模块导入。
冒烟测试:ImportError: cannot import name 'redis_client' from 'app.main'
→ 整个 approval 模块加载失败,所有审批路由 500
修复:改用 settings.create_redis_client() 自建连接(与 approval_webhook.py:_writeback_agent_todo 同款)。
byod.py 同样问题,预防性一并修复(避免 byod 模块首次被访问时再炸)。
实测:
- POST /approval/callback → HTTP 200 {errcode:0}
- GET /byod/eligible-positions → HTTP 200 (845B)
This commit is contained in:
@@ -90,9 +90,12 @@ APPROVAL_SP_STATUS_TODO_STATUS: Dict[int, str] = {
|
||||
|
||||
# Redis客户端(依赖注入)
|
||||
async def get_redis() -> aioredis.Redis:
|
||||
"""获取Redis客户端依赖"""
|
||||
from app.main import redis_client
|
||||
return redis_client
|
||||
"""获取Redis客户端依赖
|
||||
|
||||
使用 settings.create_redis_client() 自建连接,而非从 app.main 导入 redis_client
|
||||
(后者是 lifespan 函数内的局部变量,不可跨模块导入)。
|
||||
"""
|
||||
return settings.create_redis_client()
|
||||
|
||||
|
||||
# =============================================================================
|
||||
|
||||
Reference in New Issue
Block a user