R02修复: 连接检测60s×3→exit→systemd重启

This commit is contained in:
hmo
2026-07-14 03:13:53 +08:00
parent 8a53e13aa1
commit 73098176c0
2 changed files with 13 additions and 2 deletions
+1 -1
View File
@@ -90,7 +90,7 @@
| 编号 | 问题 | 影响 | 当前措施 | 优先级 | 当前状态 | | 编号 | 问题 | 影响 | 当前措施 | 优先级 | 当前状态 |
|------|------|------|----------|--------|----------| |------|------|------|----------|--------|----------|
| R01 | Gateway 进程意外退出未自动拉起 | 服务中断 | 无自动恢复 | P0 | 🔄 Gateway 健康已纳入监控(I/J Tab显示), 自动拉起待 systemd 配置 | | R01 | Gateway 进程意外退出未自动拉起 | 服务中断 | 无自动恢复 | P0 | 🔄 Gateway 健康已纳入监控(I/J Tab显示), 自动拉起待 systemd 配置 |
| R02 | XMPP Bot 断线后重连失败 | 消息丢失 | slixmpp reconnect 不可靠 | P0 | ✅ frp heartbeat已加 | | R02 | XMPP Bot 断线后重连失败 | 消息丢失 | slixmpp reconnect 不可靠 | P0 | ✅ frp heartbeat + 应用层保活(60s检测×3→exit→systemd重启) |
| R03 | Provider key 过期/配额超限无告警 | LLM 调用失败 | fallback 不总能触发 | P0 | 🔄 fallback链待验证 | | R03 | Provider key 过期/配额超限无告警 | LLM 调用失败 | fallback 不总能触发 | P0 | 🔄 fallback链待验证 |
| R04 | Session 膨胀导致响应退化 | 回复质量下降 | 硬截断 200 条 | P1 | ✅ 硬截断200条已实现 | | R04 | Session 膨胀导致响应退化 | 回复质量下降 | 硬截断 200 条 | P1 | ✅ 硬截断200条已实现 |
| R05 | SOUL vs MEMORY 规则冲突 | 行为异常 | 需手动清理 memory | P1 | 🔄 需持续维护 | | R05 | SOUL vs MEMORY 规则冲突 | 行为异常 | 需手动清理 memory | P1 | 🔄 需持续维护 |
+12 -1
View File
@@ -1165,9 +1165,20 @@ def main():
loop = asyncio.get_event_loop() loop = asyncio.get_event_loop()
async def _status_check(): async def _status_check():
skipped = 0
while True: while True:
await asyncio.sleep(60) await asyncio.sleep(60)
log("(alive)") alive = bot and bot.is_connected() if hasattr(bot, 'is_connected') else False
if not alive:
skipped += 1
log(f"[R02] XMPP 连接已断开 ({skipped}/3),等待重连...")
if skipped >= 3:
log("[R02] 连续 3 次检测到连接断开,退出进程让 systemd 重启")
os._exit(1)
else:
if skipped > 0:
log(f"(连接已恢复,跳过 {skipped} 次检测)")
skipped = 0
asyncio.ensure_future(_status_check()) asyncio.ensure_future(_status_check())