From 460670a14be191f29570bf19aeef139b4138094f Mon Sep 17 00:00:00 2001 From: lcy Date: Wed, 24 Dec 2025 18:10:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20XrayCore.Close()=20?= =?UTF-8?q?=E4=B8=AD=E9=81=97=E6=BC=8F=E5=85=B3=E9=97=AD=20serverConfigMon?= =?UTF-8?q?itorPeriodic=20=E5=AF=BC=E8=87=B4=E7=9A=84=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=B3=84=E6=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题描述: - 在 core/xray.go 的 Close() 方法中,遗漏了对 serverConfigMonitorPeriodic 任务的关闭调用 - 导致每次配置重载时,旧的配置监控任务继续运行 - 多次重载后,多个监控任务同时运行,导致 API 请求频率成倍增加 现象: - 每次重载后,获取服务端配置的请求频率增加 - 日志显示频繁的'检测到服务端配置变更,正在重启节点...'消息 修复: - 在 Close() 方法开始处添加关闭 serverConfigMonitorPeriodic 的逻辑 - 确保所有定时任务在 XrayCore 关闭时都能被正确清理 影响范围: - 修改 1 个文件: core/xray.go - 新增 3 行代码 - 无破坏性变更 --- core/xray.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/xray.go b/core/xray.go index dafaaa7..9fb24fb 100644 --- a/core/xray.go +++ b/core/xray.go @@ -73,6 +73,9 @@ func (v *XrayCore) Start(serverconfig *panel.ServerConfigResponse) error { func (v *XrayCore) Close() error { v.access.Lock() defer v.access.Unlock() + if v.serverConfigMonitorPeriodic != nil { + v.serverConfigMonitorPeriodic.Close() + } v.Config = nil v.ihm = nil v.ohm = nil