diff --git a/src/modules/network_element/controller/ne_info.go b/src/modules/network_element/controller/ne_info.go index 7e21666f..0c10d493 100644 --- a/src/modules/network_element/controller/ne_info.go +++ b/src/modules/network_element/controller/ne_info.go @@ -2,6 +2,7 @@ package controller import ( "fmt" + "sync" "ems.agt/src/framework/i18n" "ems.agt/src/framework/utils/ctx" @@ -26,7 +27,7 @@ type NeInfoController struct { } // neStateCacheMap 网元状态缓存最后一次成功的信息 -var neStateCacheMap map[string]map[string]any = make(map[string]map[string]any) +var neStateCacheMap = sync.Map{} // 网元状态 // @@ -53,11 +54,12 @@ func (s *NeInfoController) NeState(c *gin.Context) { resData, err := neService.NeState(neInfo) if err != nil { // 异常取上次缓存 - if v, ok := neStateCacheMap[neKey]; ok && v != nil { - v["online"] = false - neStateCacheMap[neKey] = v + + resDataCache, ok := neStateCacheMap.Load(neKey) + if ok && resDataCache != nil { + resDataCache.(map[string]any)["online"] = false } else { - neStateCacheMap[neKey] = map[string]any{ + resDataCache = map[string]any{ "online": false, "neId": neInfo.NeId, "neName": neInfo.NeName, @@ -65,13 +67,14 @@ func (s *NeInfoController) NeState(c *gin.Context) { "neIP": neInfo.IP, } } - c.JSON(200, result.OkData(neStateCacheMap[neKey])) + neStateCacheMap.Store(neKey, resDataCache) + c.JSON(200, result.OkData(resDataCache)) return } // 存入缓存 resData["online"] = true - neStateCacheMap[neKey] = resData + neStateCacheMap.Store(neKey, resData) c.JSON(200, result.OkData(resData)) }