12 KiB
金融数据中台 v2.1 - 开发任务清单
项目: 20260330_kline_system
版本: v2.1.0
创建日期: 2026-04-03
预计完成: 2026-04-15
当前状态: 规划中
📋 任务总览
| 阶段 | 任务数 | 已完成 | 进度 |
|---|---|---|---|
| 后端开发 | 9 | 0 | 0% |
| 前端开发 | 3 | 0 | 0% |
| 测试 | 5 | 0 | 0% |
| 文档 | 2 | 0 | 0% |
| 总计 | 19 | 0 | 0% |
🔴 P0 - 核心功能(13 天)
1. WebSocket 实时推送(3 天)
1.1 WebSocket 连接管理(2 天)
文件: backend/app/websocket/quote_pusher.py
任务详情:
- 创建 WebSocket 路由
/ws/v1/quote - 实现认证中间件(Bearer Token)
- 实现心跳机制(30 秒间隔)
- 实现连接管理(存储连接、断开清理)
- 实现重连逻辑(指数退避)
- 编写单元测试
技术要点:
# FastAPI WebSocket
from fastapi import WebSocket, WebSocketDisconnect
@app.websocket("/ws/v1/quote")
async def websocket_endpoint(websocket: WebSocket, token: str):
# 认证
user = await authenticate(token)
if not user:
await websocket.close(code=4001)
return
await websocket.accept()
# 连接管理
connection_manager.add_connection(user.id, websocket)
try:
while True:
data = await websocket.receive_json()
await handle_message(user.id, data)
except WebSocketDisconnect:
connection_manager.remove_connection(user.id)
验收标准:
- 支持 1000+ 并发连接
- 握手延迟 <100ms
- 心跳正常,90 秒无心跳自动断开
- 认证失败正确返回错误码
1.2 WebSocket 推送服务(1 天)
文件: backend/app/services/push_service.py
任务详情:
- 实现订阅管理(subscribe/unsubscribe)
- 实现行情推送(从 Redis Pub/Sub 接收)
- 实现 K 线推送
- 实现系统消息推送
- 编写单元测试
数据格式:
{
"type": "quote",
"symbol": "IF2406",
"data": {
"time": "2026-04-03T10:30:00.123Z",
"price": 3850.5,
"change": 0.5,
"change_percent": 0.13
}
}
验收标准:
- 推送延迟 <50ms
- 消息丢失率 <0.01%
- 支持 JSON 格式推送
2. 智能告警系统(3 天)
2.1 告警规则引擎(2 天)
文件: backend/app/services/alert_engine.py
任务详情:
- 设计规则数据结构
- 实现规则解析器
- 实现规则计算器(实时数据 + 规则 → 布尔值)
- 实现规则调度(每分钟执行)
- 实现规则缓存
- 编写单元测试
规则示例:
class AlertRule:
id: int
user_id: int
name: str
symbol: str
type: str # price, change_percent, technical, volume
condition: str # "price > 3900"
channels: List[str] # ["站内消息", "邮件"]
enabled: bool
start_time: time
end_time: time
repeat_interval: int # 秒
验收标准:
- 支持 100+ 规则/用户
- 规则计算延迟 <100ms
- 支持并发计算 >1000 规则/秒
2.2 告警通知服务(1 天)
文件: backend/app/services/alert_notification.py
任务详情:
- 实现站内消息通知
- 实现邮件通知(SMTP)
- 实现企业微信通知(Webhook)
- 实现钉钉通知(Webhook)
- 实现短信通知(阿里云 SMS)
- 实现通知去重(repeat_interval)
- 编写单元测试
通知模板:
【金融数据中台】告警通知
告警名称:IF2406 价格突破
触发时间:2026-04-03 10:30:00
触发条件:价格 > 3900
当前价格:3901.5
查看详情:https://your-system.com/alerts/12345
验收标准:
- 通知延迟 <1s
- 通知到达率 >99%
- 支持 5 种通知渠道
3. 数据订阅服务(2 天)
3.1 Redis Stream 服务(2 天)
文件: backend/app/services/subscription_service.py
任务详情:
- 设计订阅主题格式
- 实现主题管理(创建/删除)
- 实现消息发布(publish)
- 实现消息消费(XREADGROUP)
- 实现消费者组管理
- 实现消息确认(XACK)
- 实现消息清理(24 小时)
- 编写单元测试
主题格式:
kline.update.{symbol}.{period}
quote.update.{symbol}
sync.complete
alert.trigger.{alert_id}
data.quality.issue
验收标准:
- 订阅延迟 <500ms
- 支持 100+ 主题
- 支持 10+ 消费者组
- 消息保留 24 小时
4. 数据质量监控(2 天)
4.1 质量监控服务(2 天)
文件: backend/app/services/quality_monitor.py
任务详情:
- 设计监控指标(完整性、准确性、及时性、一致性)
- 实现完整性检测(数据缺失)
- 实现准确性检测(价格异常)
- 实现及时性检测(数据延迟)
- 实现一致性检测(缓存 vs 数据库)
- 实现质量评分计算
- 实现告警触发
- 编写单元测试
监控指标:
completeness_score = (1 - missing_periods / total_periods) * 100
accuracy_score = (1 - abnormal_records / total_records) * 100
timeliness_score = (1 - delayed_periods / total_periods) * 100
consistency_score = (1 - inconsistent_records / total_records) * 100
overall_score = (completeness + accuracy + timeliness + consistency) / 4
验收标准:
- 问题发现 <1 分钟
- 质量评分准确
- 支持自定义监控规则
5. API 接口实现(2 天)
5.1 WebSocket API(0.5 天)
文件: backend/app/api/v2/websocket.py
任务详情:
- 实现连接状态查询
- 实现订阅管理 API
- 实现推送统计 API
5.2 告警 API(0.5 天)
文件: backend/app/api/v2/alert.py
任务详情:
- POST /api/v2/alert/rules - 创建告警
- GET /api/v2/alert/rules - 查询告警列表
- PUT /api/v2/alert/rules/{id} - 更新告警
- DELETE /api/v2/alert/rules/{id} - 删除告警
- POST /api/v2/alert/rules/{id}/enable - 启用告警
- POST /api/v2/alert/rules/{id}/disable - 禁用告警
- GET /api/v2/alert/history - 查询告警历史
5.3 订阅 API(0.5 天)
文件: backend/app/api/v2/subscription.py
任务详情:
- POST /api/v2/subscription - 创建订阅
- GET /api/v2/subscription/{id} - 查询订阅
- PUT /api/v2/subscription/{id} - 更新订阅
- DELETE /api/v2/subscription/{id} - 取消订阅
5.4 质量 API(0.5 天)
文件: backend/app/api/v2/quality.py
任务详情:
- GET /api/v2/quality/score - 查询质量评分
- GET /api/v2/quality/issues - 查询问题列表
- POST /api/v2/quality/rules - 创建监控规则
- PUT /api/v2/quality/rules/{id} - 更新监控规则
- GET /api/v2/quality/history - 查询监控历史
6. 数据库迁移(0.5 天)
6.1 创建新表(0.5 天)
文件: backend/app/db/migrations_v2_1.py
任务详情:
- 创建 alert_rule 表
- 创建 alert_history 表
- 创建 subscription 表
- 创建 quality_rule 表
- 创建 quality_log 表
- 编写迁移脚本
- 编写回滚脚本
验收标准:
- 迁移脚本可执行
- 回滚脚本可执行
- 数据不丢失
🟠 P1 - 前端开发(5 天)
7. 告警管理页面(2 天)
文件: frontend/src/views/alert/
任务详情:
- 告警列表页面
- 创建告警表单
- 编辑告警表单
- 告警历史页面
- 告警统计图表
页面设计:
告警管理
├── 告警列表(表格)
│ ├── 名称
│ ├── 品种
│ ├── 类型
│ ├── 条件
│ ├── 状态(启用/禁用)
│ └── 操作(编辑/删除/启用/禁用)
├── 创建告警(表单)
│ ├── 告警名称
│ ├── 品种选择
│ ├── 告警类型
│ ├── 触发条件
│ ├── 通知渠道
│ └── 生效时间
└── 告警历史(表格)
├── 触发时间
├── 告警名称
├── 触发值
└── 通知状态
8. 数据质量 Dashboard(2 天)
文件: frontend/src/views/quality/
任务详情:
- 质量概览卡片(4 个评分)
- 问题统计图表
- 数据源状态表格
- 质量趋势图表
- 监控规则管理
页面设计:
数据质量 Dashboard
├── 质量概览
│ ├── 完整性评分:98.5%
│ ├── 准确性评分:99.8%
│ ├── 及时性评分:97.2%
│ └── 一致性评分:100%
├── 问题统计(24 小时)
│ ├── 严重问题:0
│ ├── 警告问题:3
│ └── 提示信息:12
├── 质量趋势(折线图)
└── 数据源状态
├── amazingData: 正常
├── Tushare: 正常
└── 东方财富:延迟
9. WebSocket 测试工具(1 天)
文件: frontend/src/views/tools/websocket-tester.vue
任务详情:
- 连接管理(连接/断开)
- 订阅管理(订阅/取消)
- 消息日志(接收/发送)
- 统计信息(延迟/丢包)
🟡 P2 - 测试(5 天)
10. WebSocket 测试(1 天)
文件: tests/test_websocket.py
任务详情:
- 连接测试(正常/异常)
- 认证测试(有效/无效 Token)
- 订阅测试(订阅/取消)
- 推送测试(行情/K线)
- 性能测试(1000 并发)
- 稳定性测试(24 小时)
11. 告警功能测试(1 天)
文件: tests/test_alert.py
任务详情:
- 规则创建测试
- 规则计算测试
- 告警触发测试
- 通知发送测试
- 性能测试(1000 规则)
12. 数据订阅测试(1 天)
文件: tests/test_subscription.py
任务详情:
- 订阅创建测试
- 消息发布测试
- 消息消费测试
- 消费者组测试
- 性能测试(100 主题)
13. 质量监控测试(1 天)
文件: tests/test_quality.py
任务详情:
- 完整性检测测试
- 准确性检测测试
- 及时性检测测试
- 一致性检测测试
- 告警触发测试
14. 性能测试(1 天)
文件: tests/test_performance.py
任务详情:
- WebSocket 压测(Locust)
- 告警引擎压测
- 订阅服务压测
- 系统稳定性测试
📝 P3 - 文档(2 天)
15. API 文档更新(1 天)
文件: docs/api_v2.md
任务详情:
- WebSocket API 文档
- 告警 API 文档
- 订阅 API 文档
- 质量 API 文档
- Swagger 注解更新
16. 用户手册更新(1 天)
文件: docs/user_guide.md
任务详情:
- WebSocket 使用指南
- 告警配置指南
- 数据订阅指南
- 质量监控指南
- 常见问题 FAQ
📅 时间计划
第 1 周(2026-04-04 ~ 2026-04-07)
- 需求评审(04-04)
- 架构设计(04-05)
- WebSocket 开发(04-06-04-07)
第 2 周(2026-04-08 ~ 2026-04-11)
- 告警系统开发(04-08-04-09)
- 数据订阅开发(04-10)
- 质量监控开发(04-11)
- API 接口开发(04-11)
第 3 周(2026-04-12 ~ 2026-04-15)
- 前端开发(04-12-04-13)
- 测试(04-13-04-14)
- 文档(04-14)
- 验收上线(04-15)
📊 进度跟踪
| 日期 | 计划完成 | 实际完成 | 进度 | 备注 |
|---|---|---|---|---|
| 04-04 | 需求评审 | - | - | - |
| 04-05 | 架构设计 | - | - | - |
| 04-06 | WebSocket 连接 | - | - | - |
| 04-07 | WebSocket 推送 | - | - | - |
| 04-08 | 告警规则引擎 | - | - | - |
| 04-09 | 告警通知服务 | - | - | - |
| 04-10 | 数据订阅服务 | - | - | - |
| 04-11 | 质量监控服务 | - | - | - |
| 04-12 | 前端开发 | - | - | - |
| 04-13 | 测试 | - | - | - |
| 04-14 | 验收 | - | - | - |
| 04-15 | 上线 | - | - | - |
创建人: Agent Coordinator
创建日期: 2026-04-03
状态: 规划中
下一步: 分配任务 → 开发实施 → 进度跟踪