3ecd3d75d4
Add implementation progress reports, review reports (CTO/quality/deploy), session log, signoff table, team roster, collaboration charter, tech-stack evaluation and inventory, research reports. Remove obsolete multisync_server.py. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2.2 KiB
2.2 KiB
第零步:基础设施加固 — 工程部工作报告
日期: 2026-05-21 部门: 工程部 负责人: CTO 任务编号: R1-R5
工作人员
| 姓名 | 角色 | 任务编号 | 签名 |
|---|---|---|---|
| — | FastAPI开发 | R1, R4, R5 | — |
| — | 后端架构师 | R2 | — |
| — | 软件架构师 | R3 | — |
仅实际参与工作人员签名,未参与者不列入。
工作内容
R1: Redis BlockingConnectionPool 替换
- 重写
server/infrastructure/redis/client.py - 使用
BlockingConnectionPool(max_connections=50, timeout=5, health_check_interval=30) - 新增
init_redis(app)在 lifespan 启动时调用 - 新增
close_redis()在 shutdown 时调用
R2: get_redis() 启动强校验
- 去掉
Redis | None返回类型 → 直接返回Redis - 启动时 ping 验证,失败直接
SystemExit - 新增
get_redis_sync()安全变体(graceful shutdown 用)
R3: WebSocket 两层架构
- Layer 1:
ConnectionManager内存管理器(per-worker) - Layer 2: Redis Pub/Sub
nexus:alerts频道中继 start_redis_subscriber()/stop_redis_subscriber()在 lifespan 管理
R4: WebSocket ping/pong 心跳
- 每 30s 发送 ping
- 60s 无 pong → 僵尸连接清理
_heartbeat_loop()自动管理
R5: WebSocket JWT 认证
/ws/alerts?token=xxx查询参数传递 JWT_verify_ws_token()复用 JWT 验证逻辑
D7: DB Session 泄漏修复(合并到本步骤)
DbSessionMiddleware在 main.py 中间件request.state.db注入 sessiondependencies.py4 个 service 工厂改用_get_request_session(request)
交付物
server/infrastructure/redis/client.py— Redis客户端重写server/api/websocket.py— WebSocket两层架构server/main.py— lifespan + 中间件server/api/dependencies.py— Session泄漏修复server/api/servers.py— 使用新get_redis()server/api/agent.py— 使用新get_redis()server/api/health.py— 统一检查server/background/heartbeat_flush.py— 使用新get_redis()server/background/self_monitor.py— 使用新get_redis()server/application/services/sync_service.py— 使用新get_redis()
验收意见
⏳ 待测试部验证