fix(cache):修复缓存关联关系被不正常清除的问题。
This commit is contained in:
parent
8aa4e38760
commit
0d2b1431b6
9
cache/relation.go
vendored
9
cache/relation.go
vendored
|
@ -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 {
|
||||
|
|
1
main.go
1
main.go
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue
Block a user