R02修复: 连接检测60s×3→exit→systemd重启
This commit is contained in:
+1
-1
@@ -90,7 +90,7 @@
|
||||
| 编号 | 问题 | 影响 | 当前措施 | 优先级 | 当前状态 |
|
||||
|------|------|------|----------|--------|----------|
|
||||
| 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链待验证 |
|
||||
| R04 | Session 膨胀导致响应退化 | 回复质量下降 | 硬截断 200 条 | P1 | ✅ 硬截断200条已实现 |
|
||||
| R05 | SOUL vs MEMORY 规则冲突 | 行为异常 | 需手动清理 memory | P1 | 🔄 需持续维护 |
|
||||
|
||||
+12
-1
@@ -1165,9 +1165,20 @@ def main():
|
||||
loop = asyncio.get_event_loop()
|
||||
|
||||
async def _status_check():
|
||||
skipped = 0
|
||||
while True:
|
||||
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())
|
||||
|
||||
|
||||
Reference in New Issue
Block a user