diff --git a/CHANGELOG.md b/CHANGELOG.md index 05939d55..80ab882a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,23 @@ --- +## 2026-07-09 — 信号堆积修复 + +### 根因 +xiaoguo_signal_consumer 仅处理今日信号(`date(created_at)=today`),之前日期的信号永远不被消费 → 33条堆积。SIGNAL_MAX_AGE_HOURS=4 已定义但未被使用。 + +### 修复清单 +1. **xiaoguo_signal_consumer**: `date(today)` → `created_at > -4h` 年龄过滤 +2. **xiaoguo_signal_consumer**: 无时效内信号时自动标记过期信号为已处理 +3. **xiaoguo_signal_consumer**: 移除 `mo_data.get_price` 导入(import path 冲突,root mo_data.py 无 get_price),改用腾讯 API 直连 fallback +4. **intraday_health_check**: 信号堆积检查限定 4h 内,避免过期信号误报 +5. **system_audit**: 同上 + +### 效果 +- 已清理 20 条过期信号(>4h),剩余 0 条未处理 +- 盘中健康检查不会再因过期信号误报堆积 +- 信号管道只监控时效内的处理速度 + ## 2026-07-03 — 代码重构 ### 删除重复文件 diff --git a/analyst-knowledge-log.md b/analyst-knowledge-log.md index 05171307..07ac6e9d 100644 --- a/analyst-knowledge-log.md +++ b/analyst-knowledge-log.md @@ -259,5 +259,25 @@ cron prompt for 系统健康检查-开盘前 (job_id: 37c02f4d7df9) - Zone notes 冷却30分钟→4小时(匹配重评冷却) - 早退bug修复:`if not actionable and not zone_notes: return 0` - 标题自适应:有推荐→【知微】自选买入提醒 | 仅区间→【知微】操作区间提醒 -- 操作建议标题只在有可操作项时显示(`if actionable:`) +|- 操作建议标题只在有可操作项时显示(`if actionable:`) + +## 2026-07-09 xiaoguo_signal_consumer — 信号堆积修复 + +**发现了什么:** +- 小果信号管道堆积33条未处理(阈值30),自愈系统报警 +- 根因:xiaoguo_signal_consumer 的SQL用 `date(created_at)=today` 过滤,旧信号永远不被消费 +- `SIGNAL_MAX_AGE_HOURS=4` 已定义但未被使用 +- `mo_data.get_price` 导入在 cron 环境下失败(root mo_data.py 无 get_price,scripts/mo_data.py 有) + +**修改了什么:** +- 文件: `scripts/xiaoguo_signal_consumer.py`, `scripts/intraday_health_check.py`, `scripts/system_audit.py`, `system_audit.py` +1. consumer: date(today) → created_at > -4h 年龄过滤(使用 SIGNAL_MAX_AGE_HOURS 常量) +2. consumer: 无时效内信号时自动标记过期信号为已处理(防堆积) +3. consumer: 修复 import 冲突 — 移除 mo_data.get_price,改用腾讯API直连 fallback +4. health_check/system_audit: 堆积检查也限定4h内 + +**效果预期:** +- 过期信号不再堆积 → 健康检查正常 +- 消费者只处理时效内信号 → 最新信号优先 +- 无信号时自动清理过期堆积 → 不积压 - 区间说明格式改为: "→ 进入操作区间,但重评结果: {reason}" \ No newline at end of file