Commit 31add993 authored by 张宇迪's avatar 张宇迪

redis记录调用痕迹用于定时任务计次

parent 0a619de1
......@@ -92,3 +92,8 @@ func (r Redis) Del(key string) error {
bmd := r.Conn.Del(strings.ToUpper(key))
return bmd.Err()
}
func (r Redis) RPush(key string, value interface{}) (err error) {
key = fmt.Sprintf("%s-%s", strings.ToUpper(r.Prefix), strings.ToUpper(key))
bmd := r.Conn.RPush(strings.ToUpper(key), value)
return bmd.Err()
}
......@@ -12,6 +12,8 @@ var (
)
const CallRecord string = "callRecord"
const SvcTag string = "SVC"
const ApplyTag string = "APPLY"
var ProxyConf = struct {
MeshId string `json:"meshId"`
......
......@@ -54,10 +54,18 @@ func Proxy(c *gin.Context) {
if sensitiveflag == false {
res = service.SensitiveFilter(proxyData, res)
}
//调用痕迹进入队列
//service.RecordCall(proxyData, resp.StatusCode, respbody)
//服务调用计次
service.CallCounts(proxyData)
err = service.CallCounts(proxyData)
if err != nil {
Return(err.Error())
return nil
}
////申请调用计次
err = service.ApplyCallCounts(proxyData)
if err != nil {
Return(err.Error())
return nil
}
Return(res)
return nil
}))
......
......@@ -35,7 +35,7 @@ func QueryCallsCount(filter model.ProxyData) (call bool, sensitiveCall bool, err
return
}
date := time.Now().Format(config.LocalDateFormat)
key := fmt.Sprintf("%s-%s", date, filter.Apply_id)
key := fmt.Sprintf("%d-%s", filter.Apply_id, date)
countStr, err := redis.Get(key)
if err != nil && err.Error() != `redis: nil` {
return
......@@ -123,16 +123,14 @@ func CallCounts(proxyData model.ProxyData) (err error) {
date := time.Now().Format(config.LocalDateFormat)
aMonBefore := time.Now().AddDate(0, -1, 0).Format(config.LocalDateFormat)
str, err := redis.Get(string(proxyData.Service_id))
str, err := redis.Get(fmt.Sprintf("%s-%d", config.SvcTag, proxyData.Service_id))
if err != nil && err.Error() != `redis: nil` {
return
}
if err != nil {
return
}
dateMap := make(map[string]int)
if str != "" {
err = json.Unmarshal([]byte(str), dateMap)
err = json.Unmarshal([]byte(str), &dateMap)
if err != nil {
return
}
......@@ -150,7 +148,24 @@ func CallCounts(proxyData model.ProxyData) (err error) {
} else {
dateMap[date] = 1
}
err = redis.Set(string(proxyData.Service_id), dateMap, -1)
content, err := json.Marshal(dateMap)
//fmt.Sprintf("SVCID-%d",proxyData.Service_id)
err = redis.Set(fmt.Sprintf("%s-%d", config.SvcTag, proxyData.Service_id), content, -1)
return
}
/*
申请调用记录
*/
func ApplyCallCounts(proxyData model.ProxyData) (err error) {
redis, err := client.GetRedisClient()
if err != nil {
fmt.Println(err.Error())
return
}
date := time.Now().Format(config.LocalDateTimeFormat)
err = redis.RPush(fmt.Sprintf("%s-%d", config.ApplyTag, proxyData.Apply_id), []byte(date))
fmt.Println("rpush data to list failed:", err)
return
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment