You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5.0 KiB
5.0 KiB
金融数据中台 v2.1 - Bug 修复任务单
优先级: 🔴 P0 - 紧急
创建时间: 2026-04-06 02:05
要求完成: 2026-04-06 18:00 (16 小时内)
执行人: Agent Developer
🐛 Bug 列表(来自架构审查)
Bug #001: API 限流保护缺失 🔴
严重级别: Major
位置: backend/app/api/v2/*.py
问题: 所有 API 接口未实现限流保护
影响: 安全风险,可能被 DDoS 攻击
修复方案:
# 1. 安装 slowapi
pip install slowapi
# 2. 在 main.py 中添加
from slowapi import Limiter
from slowapi.util import get_remote_address
limiter = Limiter(key_func=get_remote_address)
app.state.limiter = limiter
app.add_exception_handler(RateLimitExceeded, _rate_limit_exceeded_handler)
# 3. 在 API 路由中添加装饰器
@router.get("/alert/rules")
@limiter.limit("100/minute")
async def get_alert_rules(request: Request):
...
涉及文件:
backend/app/main.pybackend/app/api/v2/alert.pybackend/app/api/v2/quality.pybackend/app/api/v2/websocket.py
预计时间: 2 小时
Bug #002: WebSocket 连接数未限制 🔴
严重级别: Major
位置: backend/app/websocket/connection_manager.py
问题: 未设置最大连接数限制
影响: 性能风险,大量连接时服务器可能崩溃
修复方案:
class ConnectionManager:
MAX_CONNECTIONS = 1000 # 类常量
async def connect(self, websocket: WebSocket, token: str, user_id: str):
# 添加连接数检查
if len(self.active_connections) >= self.MAX_CONNECTIONS:
await websocket.close(code=1013, reason="Too many connections")
logger.warning(f"Connection rejected: max connections ({self.MAX_CONNECTIONS}) reached")
return
await websocket.accept()
self.active_connections[user_id] = websocket
涉及文件:
backend/app/websocket/connection_manager.py
预计时间: 1 小时
Bug #003: 数据库连接池配置缺失 🟡
严重级别: Minor
位置: backend/app/db/database.py
问题: 未显式配置数据库连接池大小
影响: 高并发时可能连接不足
修复方案:
# 在 create_engine 中添加参数
engine = create_engine(
DATABASE_URL,
pool_size=20, # 连接池大小
max_overflow=10, # 最大溢出连接数
pool_pre_ping=True, # 连接前检查
pool_recycle=3600 # 连接回收时间
)
涉及文件:
backend/app/db/database.py
预计时间: 1 小时
Bug #004: 日志记录不完整 🟡
严重级别: Minor
位置: 多个文件
问题: 关键操作缺少日志记录
修复方案:
# 在关键操作中添加日志
logger.info(f"Alert rule created: {rule_id}, user: {user_id}")
logger.info(f"Alert triggered: {rule_id}, symbol: {symbol}, price: {price}")
logger.info(f"Notification sent: {notification_id}, channel: {channel}")
涉及文件:
backend/app/api/v2/alert.pybackend/app/services/alert_engine.pybackend/app/services/alert_notification.py
预计时间: 3 小时
Bug #005: 前端错误提示不友好 🟡
严重级别: Minor
位置: frontend/src/views/alert/*.vue
问题: API 调用失败时错误提示不够详细
修复方案:
// 优化错误处理
try {
await api.createAlert(ruleData)
ElMessage.success('创建成功')
} catch (error) {
// 显示详细错误信息
const errorMsg = error.response?.data?.detail || error.message || '操作失败'
ElMessage.error(`创建失败:${errorMsg}`)
}
涉及文件:
frontend/src/views/alert/AlertCreate.vuefrontend/src/views/alert/AlertEdit.vue
预计时间: 2 小时
📋 修复步骤
步骤 1: API 限流(2 小时)
# 1. 安装依赖
pip install slowapi
# 2. 修改 main.py
# 3. 修改各 API 文件
# 4. 测试限流功能
步骤 2: WebSocket 连接数限制(1 小时)
# 1. 修改 connection_manager.py
# 2. 添加 MAX_CONNECTIONS 常量
# 3. 添加连接数检查逻辑
# 4. 测试连接限制
步骤 3: 数据库连接池(1 小时)
# 1. 修改 database.py
# 2. 添加连接池参数
# 3. 测试连接池配置
步骤 4: 日志完善(3 小时)
# 1. 在各模块添加日志
# 2. 统一日志格式
# 3. 测试日志输出
步骤 5: 前端错误提示(2 小时)
# 1. 修改前端错误处理
# 2. 优化错误提示
# 3. 测试错误场景
✅ 完成标准
- 所有 Major 问题修复 ✅
- 所有 Minor 问题修复 ✅
- 代码审查通过 ✅
- 回归测试通过 ✅
📢 完成后通知
修复完成后,请通知:
- Agent Coordinator - 更新项目状态
- Agent Architect - 复审
- Agent Tester - 回归测试
任务创建人: Agent Coordinator
创建时间: 2026-04-06 02:05
任务状态: ⏳ 待执行
优先级: 🔴 P0 - 紧急
截止时间: 2026-04-06 18:00