D2启动前最后确认(修正版)
日期: 2026-09-14
状态: 等待用户最终确认
任务1:测试告警预知 ⚠️
ops_system_health测试预知
测试操作:
修改ops_system_health的last_run_at为3小时前
→ 模拟超时故障
→ alert_channel_health检测到
→ 发送TG告警
预期告警内容:
⚠️ [P1] ops_system_health
状态: 超时
详情: 超时10800s(阈值7200s)
触发条件:
- elapsed_s > timeout_threshold_s (7200s)
- consecutive_failures >= P1_ESCALATE_COUNT (2次)
⚠️ 注意: 需要连续2次超时才会触发TG告警
[TEST]前缀支持
当前状态: ❌ 不支持
- alert_channel_health.py 无test_mode参数
- send_tg() 无is_test参数
建议方案:
方案A: 手动添加[TEST]前缀到告警消息
方案B: 使用独立task_id(如test_ops_system_health)
方案C: 在alert_utils.py添加test_mode参数(需改代码)
预知信息
| 项目 |
值 |
| 测试任务 |
ops_system_health (P1) |
| cron_id |
1f99cf7364a9 |
| 当前状态 |
无task_runs记录(安全) |
| 静默状态 |
无记录 |
| 告警阈值 |
连续2次超时 |
| TG推送 |
会发送真实告警 |
任务2:清理清单 ✅
恢复清单
□ 1. 恢复ops_system_health.last_run_at
操作: DELETE FROM task_runs WHERE task_id = 'ops_system_health' AND start_time LIKE 'test_%'
□ 2. 恢复临时禁用的cron
操作: hermes cron resume <任务id>
检查: hermes cron list | grep disabled
□ 3. 删除task_runs测试记录
操作: DELETE FROM task_runs WHERE task_id LIKE 'test_%' OR start_time LIKE 'test_%'
□ 4. 删除alerts测试记录
操作: DELETE FROM alerts WHERE task_id LIKE 'test_%'
□ 5. 记录已发出的TG告警
操作: 截图保存告警消息
位置: D:/Hermes/reports/D2_test_alert_screenshots/
任务3:08:30-09:30盘前任务确认 ⚠️⚠️⚠️
该时段运行任务(17个!)
| 时间 |
任务 |
调度 |
ID |
风险 |
| 08:00 |
宏观速览_盘前 |
0 8 * * 1-5 |
17c03029 |
⚠️ |
| 08:00 |
周度宏观战略观测 |
0 8 * * 1 |
ab7f346a |
⚠️ |
| 08:00 |
智囊团每日市场观点速报 |
0 8 * * 1-5 |
f104d2fb |
⚠️ |
| 08:20 |
☀️ 盘前推送v2 |
20 8 * * 1-5 |
9eade1a7 |
⚠️ |
| 08:40 |
A股风险情绪雷达日报 |
40 8 * * 1-5 |
b7707502 |
⚠️ |
| 08:45 |
📊 研报深度分析推送 |
45 8 * * 1-5 |
c85842c9 |
⚠️ |
| 08:45 |
风险雷达数据采集 |
45 8 * * 1-5 |
194040f5 |
⚠️ |
| 08:45 |
通达信标签同步 |
45 8 * * 1-5 |
0522358a |
⚠️ |
| 08:50 |
980080/980081指数监控 |
50 8 * * * |
58d47277 |
⚠️ |
| 08:50 |
月线主进盘前交叉 |
50 8 * * 1-5 |
30b6a9c8 |
⚠️ |
| 09:00 |
📊 每日综合摘要 |
0 9 * * 1-5 |
daily_su |
⚠️ 高负载 |
| 09:00 |
心跳自愈系统 |
0 9 * * * |
self_hea |
⚠️ |
| 09:05 |
盘前操作单 |
5 9 * * 1-5 |
404fae2d |
⚠️ |
| 09:15 |
Top10模拟持仓日评 |
15 9 * * 1-5 |
dd9ddddf |
⚠️ |
| 10:00 |
盘中大盘状态监控 |
0 10 * * 1-5 |
cd0d4601 |
⚠️ |
| 10:30 |
中国资本动向看门狗 |
30 10 * * 1-5 |
29145a4d |
⚠️ |
冲突分析
⚠️⚠️⚠️ 08:30-09:30是高峰时段!
- 17个任务在此时段运行
- 08:40-09:00是最高峰(8个任务)
- 资源竞争严重(tushare限流、CPU、IO)
❌ 原方案不可行:
- 08:30-09:30不适合做受控测试
- 会与17个盘前任务竞争资源
- 可能触发限流或超时
✅ 建议调整:
方案A: 推迟到盘后15:30-17:00测试
方案B: 提前到07:30-08:00测试(盘前早鸟窗口)
方案C: 拆分测试,部分盘前+部分盘后
任务4:回滚方案 ✅
回滚命令
# 方案1: 删除影子cron
hermes cron remove <影子任务id>
# 方案2: 恢复jobs.json备份
cp C:/Users/Admin/AppData/Local/hermes/cron/jobs.json.bak_20260913 \
C:/Users/Admin/AppData/Local/hermes/cron/jobs.json
hermes gateway restart
# 方案3: DB清理
python -c "
import sqlite3
conn = sqlite3.connect('D:/Hermes/data/state/alert_state.db')
conn.execute(\"DELETE FROM task_runs WHERE task_id LIKE 'test_%'\")
conn.execute(\"DELETE FROM alerts WHERE task_id LIKE 'test_%'\")
conn.execute(\"DELETE FROM silence_state WHERE task_id LIKE 'test_%'\")
conn.commit()
conn.close()
print('DB清理完成')
"
备份位置
C:/Users/Admin/AppData/Local/hermes/cron/jobs.json.bak_20260913 ← 最新备份(今天08:31)
C:/Users/Admin/AppData/Local/hermes/cron/jobs.json.bak_deliver_20260905_100318
C:/Users/Admin/AppData/Local/hermes/cron/jobs.json.bak_preopt
D2执行方案调整建议 ⚠️
原方案问题
原方案: 08:30-09:30受控测试
问题: 与17个盘前任务冲突,资源竞争激烈
建议调整方案
| 时段 |
原计划 |
调整后 |
理由 |
| 08:30-09:30 |
受控测试 |
跳过 |
高峰时段,资源竞争 |
| 15:30-16:30 |
run_with_alert集成 |
15:30-16:30受控测试 |
盘后空闲,适合测试 |
| 20:00-20:30 |
回归验证 |
20:00-20:30集成测试 |
晚间稳定期 |
调整后的D2时间表
明天(9月15日):
15:30-16:30 受控测试(4项)
- 告警路径测试
- 超时路径测试
- Dead-Man测试
- 通道健康测试
20:00-20:30 run_with_alert影子cron集成
- 注册影子cron
- 比对输出
- 验证告警功能
21:00-21:30 回归验证
- 确认原cron正常
- 清理测试数据
- 生成报告
最终确认清单
□ D1总结已输出并确认
□ D2方案已输出并确认
□ 测试告警预知已记录
□ 清理清单已确认
□ 盘前任务冲突已分析(17个任务!)
□ 回滚方案已准备
□ 备份文件已确认存在
□ D2时间表已调整(避开盘前高峰)
⚠️ 关键发现: 08:30-09:30有17个任务运行,不适合测试
⏳ 等待用户确认调整后的D2时间表
请确认调整后方案,回复"进入D2"启动执行。