fix: reclaim disconnected gateway MCP sessions

This commit is contained in:
2026-10-28 03:05:10 +00:00
parent 430d45014b
commit 2213ce7570
5 changed files with 465 additions and 121 deletions
+13
View File
@@ -128,6 +128,19 @@ https://approval.justconn.top/downloads/dingmcp/install.md
## 运维检查
网关会话上限为每个已认证用户 8 个、全局 1000 个,同时计入尚未完成初始化的连接。
现有 Bridge 客户端退出或刷新登录时,即使没有发送 MCP DELETE,网关也会在观察到
Streamable HTTP GET 长连接断开后保留 60 秒重连宽限期,再回收遗留会话;后台每 15 秒
检查一次,新连接进入时也会检查,因此通常在断开后的 60–75 秒内释放名额。
宽限期内恢复长连接或继续发送请求会保留原会话;仅使用 POST 的客户端仍使用 2 小时
闲置期限。正常连接中的长会话不按闲置期限清理,最长存活时间仍为 24 小时。
实际请求处理结束前不会因为断线、取消或超时回收会话,也不会重试任何审批写入。
回收状态只保存在内存中,不记录审批参数、正文、Token 或用户身份到日志。
如果 8 个会话确实仍在连接,网关仍返回 HTTP 429 和 `Retry-After: 60`,需要关闭不用的
Agent 连接再重试。旧客户端可能仍将 429 显示为“审批网关暂时无法连接”;此次服务端
修复无需用户更新客户端,但不会改变客户端内置的错误文案。
```bash
systemctl --user status dingtalk-approval-mcp.service
curl --fail http://127.0.0.1:3010/healthz