fix: 缓存10分钟UPF总流量查询
This commit is contained in:
@@ -25,3 +25,6 @@ const PWD_ERR_CNT_KEY = "pwd_err_cnt:"
|
|||||||
|
|
||||||
// 网元信息管理
|
// 网元信息管理
|
||||||
const NE_KEY = "ne_info:"
|
const NE_KEY = "ne_info:"
|
||||||
|
|
||||||
|
// 网元数据管理
|
||||||
|
const NE_DATA_KEY = "ne_data:"
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ func (s *SysCacheController) Names(c *gin.Context) {
|
|||||||
model.NewSysCacheNames(i18n.TKey(language, "cache.name.rate_limit"), cachekey.RATE_LIMIT_KEY),
|
model.NewSysCacheNames(i18n.TKey(language, "cache.name.rate_limit"), cachekey.RATE_LIMIT_KEY),
|
||||||
model.NewSysCacheNames(i18n.TKey(language, "cache.name.pwd_err_cnt"), cachekey.PWD_ERR_CNT_KEY),
|
model.NewSysCacheNames(i18n.TKey(language, "cache.name.pwd_err_cnt"), cachekey.PWD_ERR_CNT_KEY),
|
||||||
model.NewSysCacheNames(i18n.TKey(language, "cache.name.ne_info"), cachekey.NE_KEY),
|
model.NewSysCacheNames(i18n.TKey(language, "cache.name.ne_info"), cachekey.NE_KEY),
|
||||||
|
model.NewSysCacheNames(i18n.TKey(language, "cache.name.ne_data"), cachekey.NE_DATA_KEY),
|
||||||
}
|
}
|
||||||
c.JSON(200, result.OkData(caches))
|
c.JSON(200, result.OkData(caches))
|
||||||
}
|
}
|
||||||
@@ -148,6 +149,7 @@ func (s *SysCacheController) ClearCacheSafe(c *gin.Context) {
|
|||||||
model.NewSysCacheNames(i18n.TKey(language, "cache.name.rate_limit"), cachekey.RATE_LIMIT_KEY),
|
model.NewSysCacheNames(i18n.TKey(language, "cache.name.rate_limit"), cachekey.RATE_LIMIT_KEY),
|
||||||
model.NewSysCacheNames(i18n.TKey(language, "cache.name.pwd_err_cnt"), cachekey.PWD_ERR_CNT_KEY),
|
model.NewSysCacheNames(i18n.TKey(language, "cache.name.pwd_err_cnt"), cachekey.PWD_ERR_CNT_KEY),
|
||||||
model.NewSysCacheNames(i18n.TKey(language, "cache.name.ne_info"), cachekey.NE_KEY),
|
model.NewSysCacheNames(i18n.TKey(language, "cache.name.ne_info"), cachekey.NE_KEY),
|
||||||
|
model.NewSysCacheNames(i18n.TKey(language, "cache.name.ne_data"), cachekey.NE_DATA_KEY),
|
||||||
}
|
}
|
||||||
for _, v := range caches {
|
for _, v := range caches {
|
||||||
cacheKeys, err := redis.GetKeys("", v.CacheName+":*")
|
cacheKeys, err := redis.GetKeys("", v.CacheName+":*")
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
package service
|
package service
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"ems.agt/src/framework/constants/cachekey"
|
||||||
|
"ems.agt/src/framework/redis"
|
||||||
"ems.agt/src/modules/network_data/model"
|
"ems.agt/src/modules/network_data/model"
|
||||||
"ems.agt/src/modules/network_data/repository"
|
"ems.agt/src/modules/network_data/repository"
|
||||||
)
|
)
|
||||||
@@ -48,5 +52,25 @@ func (r *PerfKPIImpl) SelectUPFTotalFlow(neType, rmUID string, day int) map[stri
|
|||||||
afterDays := now.AddDate(0, 0, -day)
|
afterDays := now.AddDate(0, 0, -day)
|
||||||
startDate := afterDays.Format("2006-01-02")
|
startDate := afterDays.Format("2006-01-02")
|
||||||
|
|
||||||
return r.perfKPIRepository.SelectUPFTotalFlow(neType, rmUID, startDate, endDate)
|
var info map[string]any
|
||||||
|
|
||||||
|
// 读取缓存数据
|
||||||
|
key := fmt.Sprintf("%sUPFTotalFlow_%s_%d", cachekey.NE_DATA_KEY, rmUID, day)
|
||||||
|
infoStr, _ := redis.Get("", key)
|
||||||
|
if infoStr != "" {
|
||||||
|
json.Unmarshal([]byte(infoStr), &info)
|
||||||
|
expireSecond, _ := redis.GetExpire("", key)
|
||||||
|
expireMinute := (time.Duration(int64(expireSecond)) * time.Second)
|
||||||
|
if expireMinute > 1*time.Minute {
|
||||||
|
return info
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
info = r.perfKPIRepository.SelectUPFTotalFlow(neType, rmUID, startDate, endDate)
|
||||||
|
|
||||||
|
// 保存到缓存
|
||||||
|
infoJSON, _ := json.Marshal(info)
|
||||||
|
redis.SetByExpire("", key, string(infoJSON), time.Duration(10)*time.Minute)
|
||||||
|
|
||||||
|
return info
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user