2.9 KiB
2.9 KiB
Forwarder Rule Stability — 链上监控作为"不稳定源" (2026-08-06 决策)
背景
2026-08-06 用户决策:删除 forwarder rule 2(链上监控 | 魏神 麻吉 内幕哥)。
原因: "链上监控的规则先删了,是不稳定的"。
为什么链上监控不稳定
链上监控 = 多个 trader 的混合信号源(麻吉大哥 / 魏神 / 狙击手 5912 等),特点:
- trader 名混乱 — 不同 trader 用相似名(brackets/emoji 后缀)
- 格式不一致 — 麻吉用"📈",魏神用"📉 注意",不同信号格式
- trader 切换快 — 同一个 trader 可能不同时间在多个频道
- 来源不能追溯 — 链上监控聚合多源,跟单不明确谁
风险
- 同时多条同名 trader — 锁混乱(同一币种多 trader 抢)
- 格式变化 — parse_signal 失败 → 信号漏跑
- trader 字段为空 — 锁到期/失败
- 来源混乱 — 真要查"我是跟谁的" → 找不回来
决策 (2026-08-06)
策略: 只保留 "实盘监控" 单一源 (chat 1),删:
- forwarder rule 2 (chat 4 链上监控)
- chats 表里 chat 4 (链上监控)
- rule 2 关联的 keywords
- rule 2 关联的 replace_rules
操作步骤(可在其他 forwarder 复用)
# 1. 删除 rule 2 (db 直接改)
docker exec telegram-forwarder python3 -c "
import sqlite3
conn = sqlite3.connect('/app/db/forward.db')
# 先删关联 keywords
conn.execute('DELETE FROM keywords WHERE rule_id=2')
# 删 replace_rules
conn.execute('DELETE FROM replace_rules WHERE rule_id=2')
# 删 rule
conn.execute('DELETE FROM forward_rules WHERE id=2')
conn.commit()
print(f'removed rule 2 with related')
# 验证
for r in conn.execute('SELECT id, source_chat_id, enable_rule FROM forward_rules').fetchall():
print(r)
"
# 2. 删除 chat 4 (防止继续监听)
docker exec telegram-forwarder python3 -c "
import sqlite3
conn = sqlite3.connect('/app/db/forward.db')
conn.execute('DELETE FROM chats WHERE id=4')
conn.commit()
print(f'removed chat 4')
"
# 3. 重启 forwarder
docker restart telegram-forwarder
# 4. 验证 forwarder 重启成功 + 没有 chat 4
docker logs --tail 20 telegram-forwarder | grep -i "启动\|chain\|链上"
验证
- ✅ rule 1(实盘监控 → 交易信号群) 启用
- ✅ chat 4 不在 chats 表
- ✅ forwarder log 显示"找到 0 个启用了总结功能的规则"
- ✅ 监听源只剩"实盘监控"单一源
经验教训
- 多源聚合 = 不稳定 — 单一源比多源稳定(单一源失效可控)
- 链上监控虽信号多,但聚合 mutiple trader → 锁混乱
- 要"宁缺毋滥" — 一个清晰稳定的源 > 多个混乱的源
- 可重启性 — 单源 forwarder 重启更可控,多源需要等待所有源
关联
forwarder-rule-enable-killer.md— rule 禁用 silent killersignal-source-drift-2026-07-15.md— 信号源变化追踪tg-forwarder-ops.md— forwarder 基础运维