From 32abe72b2cba9b8a7f1e407ac25d181118157f8a Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期六, 16 十一月 2019 10:14:40 +0800 Subject: [PATCH] 把非首次报警的也带上缓存 --- cache/cache.go | 38 +++++++++++++++++++++++++++++++------- 1 files changed, 31 insertions(+), 7 deletions(-) diff --git a/cache/cache.go b/cache/cache.go index 764b264..ffb0912 100644 --- a/cache/cache.go +++ b/cache/cache.go @@ -5,6 +5,7 @@ "basic.com/pubsub/cache.git/shardmap" "basic.com/pubsub/protomsg.git" "basic.com/valib/gopherdiscovery.git" + "basic.com/valib/logger.git" "errors" "fmt" "github.com/gogo/protobuf/proto" @@ -18,6 +19,7 @@ PREFIX_RULE = "RULE_" SERVER_KEY = "SERVERINFO" PREFIX_SDK = "SDK_" + PREFIX_SO = "SO" ) var cMap *shardmap.ShardMap @@ -53,6 +55,8 @@ initServerInfo()//鍒濆鍖栨湇鍔″櫒閰嶇疆淇℃伅 initSdks() //鍒濆鍖杝dk鍒楄〃淇℃伅 + + initSoData() initChan <- true } @@ -104,18 +108,19 @@ func initPolygons(){ var api dbapi.CameraApi data := api.FindAllPolygons() + pMap :=make(map[string][]protomsg.CameraPolygon,0) for _, item := range data { if item.Type != "line" { cameraId :=item.CameraId - arr, b := cMap.Get(PREFIX_POLYGON + cameraId) - if b { - list := arr.([]protomsg.CameraPolygon) - list = append(list,item) - cMap.Set(PREFIX_POLYGON + cameraId,list) - } else { - cMap.Set(PREFIX_POLYGON + cameraId,[]protomsg.CameraPolygon{ item }) + if _,ok :=pMap[cameraId];ok{ + pMap[cameraId] = append(pMap[cameraId],item) + } else{ + pMap[cameraId]=[]protomsg.CameraPolygon{item} } } + } + for k,v :=range pMap{ + cMap.Set(PREFIX_POLYGON + k,v) } } @@ -201,4 +206,23 @@ } else { return sdk,errors.New("sdk not found") } +} + +func initSoData() { + var api dbapi.SoApi + soinfos := api.FindAll() + logger.Debug("=====================娉ㄥ唽琛ㄤ俊鎭細") + for _,soinfo :=range soinfos { + logger.Debug(soinfo) + cMap.Set(PREFIX_SO+soinfo.SdkId,soinfo) + } +} + +func GetSoInfoById(sdkId string) (sdk protomsg.SoInfo,err error){ + obj,b :=cMap.Get(PREFIX_SO + sdkId) + if b { + return obj.(protomsg.SoInfo),nil + } else { + return sdk,errors.New("sdk not found") + } } \ No newline at end of file -- Gitblit v1.8.0