修复lock key生成的BUG

This commit is contained in:
白茶清欢 2025-05-09 09:51:10 +08:00
parent 8ddb1f72b2
commit 70d044e3a3

View File

@ -10,7 +10,6 @@ package httpclient
import ( import (
"fmt" "fmt"
"git.zhangdeman.cn/zhangdeman/network/httpclient/implement" "git.zhangdeman.cn/zhangdeman/network/httpclient/implement"
"git.zhangdeman.cn/zhangdeman/wrapper"
"net" "net"
"strings" "strings"
"time" "time"
@ -241,8 +240,8 @@ func (hc *HttpClient) Request() *define.Response {
"remaining_ttl": ttl, "remaining_ttl": ttl,
}, hc.reqCfg) }, hc.reqCfg)
// 配置了最小剩余时间,并且key剩余有效期小于最小剩余时间 // 配置了最小剩余时间,并且key剩余有效期小于最小剩余时间
// 预热加锁, 并发请求触发预热, 仅触发一个即可, 使用接口做key + query参数做key, 按照一般约定, 写请求不会做缓存, 只有读请求会 // 预热加锁, 并发请求触发预热, 仅触发一个即可, 使用接口缓存key + LOCK做锁的key {{CACHE_KEY}}_LOCK, 按照一般约定, 写请求不会做缓存, 只有读请求会
lockKey := wrapper.String(hc.reqCfg.FullUrl + serialize.JSON.MarshalForStringIgnoreError(hc.reqCfg.Query)).Md5().Value lockKey := hc.reqOption.CacheInstance.GetKey(hc.reqCfg) + "_LOCK"
if err := hc.reqOption.CacheInstance.Lock(lockKey); err != nil { if err := hc.reqOption.CacheInstance.Lock(lockKey); err != nil {
log.RecordWarn("接口请求命中缓存, 缓存结果有效期大于剩余时长小于配置阈值, 触发预热, 加锁失败, 未执行预热", map[string]any{ log.RecordWarn("接口请求命中缓存, 缓存结果有效期大于剩余时长小于配置阈值, 触发预热, 加锁失败, 未执行预热", map[string]any{
"min_ttl": cachePreHeatConfig.MinTTL, "min_ttl": cachePreHeatConfig.MinTTL,