Merge pull request #1377 from DaydreamCoding/fix/lifecycle-stop-duplicate-close

fix(lifecycle): TokenRefreshService Stop() 防重复 close
This commit is contained in:
Wesley Liddick
2026-03-30 15:38:39 +08:00
committed by GitHub

View File

@@ -32,8 +32,9 @@ type TokenRefreshService struct {
privacyClientFactory PrivacyClientFactory
proxyRepo ProxyRepository
stopCh chan struct{}
wg sync.WaitGroup
stopCh chan struct{}
stopOnce sync.Once
wg sync.WaitGroup
}
// NewTokenRefreshService 创建token刷新服务
@@ -130,7 +131,9 @@ func (s *TokenRefreshService) Start() {
// Stop 停止刷新服务(可安全多次调用)
func (s *TokenRefreshService) Stop() {
close(s.stopCh)
s.stopOnce.Do(func() {
close(s.stopCh)
})
s.wg.Wait()
slog.Info("token_refresh.service_stopped")
}