解决请求DNS解析的客户端数据未持久化的问题
This commit is contained in:
@@ -169,6 +169,9 @@ func (s *Server) Start() error {
|
||||
// 启动CPU使用率监控
|
||||
go s.startCpuUsageMonitor()
|
||||
|
||||
// 启动自动保存功能
|
||||
go s.startAutoSave()
|
||||
|
||||
// 启动UDP服务
|
||||
go func() {
|
||||
logger.Info(fmt.Sprintf("DNS UDP服务器启动,监听端口: %d", s.config.Port))
|
||||
@@ -764,6 +767,13 @@ func (s *Server) loadStatsData() {
|
||||
}
|
||||
s.monthlyStatsMutex.Unlock()
|
||||
|
||||
// 加载客户端统计数据
|
||||
s.clientStatsMutex.Lock()
|
||||
if statsData.ClientStats != nil {
|
||||
s.clientStats = statsData.ClientStats
|
||||
}
|
||||
s.clientStatsMutex.Unlock()
|
||||
|
||||
logger.Info("统计数据加载成功")
|
||||
}
|
||||
|
||||
@@ -823,6 +833,14 @@ func (s *Server) saveStatsData() {
|
||||
}
|
||||
s.monthlyStatsMutex.RUnlock()
|
||||
|
||||
// 复制客户端统计数据
|
||||
s.clientStatsMutex.RLock()
|
||||
statsData.ClientStats = make(map[string]*ClientStats)
|
||||
for k, v := range s.clientStats {
|
||||
statsData.ClientStats[k] = v
|
||||
}
|
||||
s.clientStatsMutex.RUnlock()
|
||||
|
||||
// 序列化数据
|
||||
jsonData, err := json.MarshalIndent(statsData, "", " ")
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user