File tree Expand file tree Collapse file tree 1 file changed +13
-0
lines changed
Expand file tree Collapse file tree 1 file changed +13
-0
lines changed Original file line number Diff line number Diff line change @@ -168,6 +168,19 @@ func (s *ServerHandler) ReportSystemState(c context.Context, r *pb.State) (*pb.R
168168 // 更新状态中的累计流量
169169 if singleton .ServerList [clientID ].LastActive .IsZero () || isRestart {
170170 // 首次上线或重启,使用当前流量加上数据库中的累计流量
171+ // 注意:确保每次都从数据库读取最新的累计值,避免使用可能过时的内存值
172+ var server model.Server
173+ if err := singleton .DB .First (& server , clientID ).Error ; err == nil {
174+ // 使用数据库中的累计值,确保不会丢失数据
175+ singleton .ServerList [clientID ].CumulativeNetInTransfer = server .CumulativeNetInTransfer
176+ singleton .ServerList [clientID ].CumulativeNetOutTransfer = server .CumulativeNetOutTransfer
177+ log .Printf ("从数据库加载服务器 %s 累计流量数据: 入站=%d, 出站=%d" ,
178+ singleton .ServerList [clientID ].Name ,
179+ server .CumulativeNetInTransfer ,
180+ server .CumulativeNetOutTransfer )
181+ }
182+
183+ // 然后再加上当前新上报的流量值
171184 state .NetInTransfer = originalNetInTransfer + singleton .ServerList [clientID ].CumulativeNetInTransfer
172185 state .NetOutTransfer = originalNetOutTransfer + singleton .ServerList [clientID ].CumulativeNetOutTransfer
173186
You can’t perform that action at this time.
0 commit comments