fix(cache):修复缓存关联关系被不正常清除的问题。

This commit is contained in:
徐涛 2022-09-06 15:53:24 +08:00
parent 8aa4e38760
commit 0d2b1431b6
2 changed files with 5 additions and 5 deletions

9
cache/relation.go vendored
View File

@ -98,18 +98,17 @@ func ClearOrphanRelationItems() error {
if err != nil {
return err
}
keysNeedRemove := make([]string, 0)
for _, item := range relationItems {
exist, err := Exists(item)
separated := strings.Split(item, ";")
exist, err := Exists(separated[1])
if err != nil {
return err
}
if !exist {
keysNeedRemove = append(keysNeedRemove, item)
cmd := global.RedisConn.B().Srem().Key(key).Member(item).Build()
cmds = append(cmds, cmd)
}
}
cmd := global.RedisConn.B().Srem().Key(key).Member(keysNeedRemove...).Build()
cmds = append(cmds, cmd)
}
errs := global.RedisConn.DoMulti(global.Ctx, cmds...)
firstErr, has := lo.Find(errs, func(elem rueidis.RedisResult) bool {

View File

@ -160,6 +160,7 @@ func DBConnectionKeepLive() {
func RedisOrphanCleanup() {
for range time.Tick(2 * time.Minute) {
log.Printf("[Cache] [Cleanup] Proceeding cleanup orphan keys.")
err := cache.ClearOrphanRelationItems()
if err != nil {
log.Printf("[Cache] [Cleanup] Orphan keys clear failed: %v", err)