Fix usage and cache files overwritten when loading fails

This commit is contained in:
世界
2026-10-09 12:36:03 +08:00
parent a691a44023
commit f9fcb8964f
3 changed files with 34 additions and 35 deletions
+11 -12
View File
@@ -201,17 +201,6 @@ func (s *Service) Start(stage adapter.StartStage, scope *adapter.Scope) error {
return nil
}
if s.usageTracker != nil {
scope.Add(func() error {
s.usageTracker.cancelPendingSave()
saveErr := s.usageTracker.Save()
if saveErr != nil {
s.logger.Error("save usage statistics: ", saveErr)
}
return nil
})
}
s.userManager.UpdateUsers(s.users)
credentials, err := platformReadCredentials(s.ctx, s.credentialPath)
@@ -223,7 +212,17 @@ func (s *Service) Start(stage adapter.StartStage, scope *adapter.Scope) error {
if s.usageTracker != nil {
err = s.usageTracker.Load()
if err != nil {
s.logger.Warn("load usage statistics: ", err)
s.logger.Error("load usage statistics: ", err, ", usage tracking and saving disabled")
s.usageTracker = nil
} else {
scope.Add(func() error {
s.usageTracker.cancelPendingSave()
saveErr := s.usageTracker.Save()
if saveErr != nil {
s.logger.Error("save usage statistics: ", saveErr)
}
return nil
})
}
}
+11 -12
View File
@@ -222,17 +222,6 @@ func (s *Service) Start(stage adapter.StartStage, scope *adapter.Scope) error {
return nil
}
if s.usageTracker != nil {
scope.Add(func() error {
s.usageTracker.cancelPendingSave()
saveErr := s.usageTracker.Save()
if saveErr != nil {
s.logger.Error("save usage statistics: ", saveErr)
}
return nil
})
}
s.userManager.UpdateUsers(s.users)
credentials, err := platformReadCredentials(s.ctx, s.credentialPath)
@@ -244,7 +233,17 @@ func (s *Service) Start(stage adapter.StartStage, scope *adapter.Scope) error {
if s.usageTracker != nil {
err = s.usageTracker.Load()
if err != nil {
s.logger.Warn("load usage statistics: ", err)
s.logger.Error("load usage statistics: ", err, ", usage tracking and saving disabled")
s.usageTracker = nil
} else {
scope.Add(func() error {
s.usageTracker.cancelPendingSave()
saveErr := s.usageTracker.Save()
if saveErr != nil {
s.logger.Error("save usage statistics: ", saveErr)
}
return nil
})
}
}
+12 -11
View File
@@ -97,18 +97,19 @@ func (s *Service) Start(stage adapter.StartStage, scope *adapter.Scope) error {
}
err := s.loadCache()
if err != nil {
s.logger.Error(E.Cause(err, "load cache"))
s.logger.Error("load cache: ", err, ", saving disabled")
} else {
saveTicker := time.NewTicker(1 * time.Minute)
scope.Add(func() error {
saveTicker.Stop()
saveErr := s.saveCache()
if saveErr != nil {
s.logger.Error(E.Cause(saveErr, "save cache"))
}
return nil
})
go s.loopSaveCache(scope.Context(), saveTicker)
}
saveTicker := time.NewTicker(1 * time.Minute)
scope.Add(func() error {
saveTicker.Stop()
saveErr := s.saveCache()
if saveErr != nil {
s.logger.Error(E.Cause(saveErr, "save cache"))
}
return nil
})
go s.loopSaveCache(scope.Context(), saveTicker)
if s.tlsConfig != nil {
err = s.tlsConfig.Start()
if err != nil {