This commit is contained in:
meixiongfeng 2023-01-31 10:44:53 +08:00
commit d97813c6c2
2 changed files with 6 additions and 0 deletions

View File

@ -1,6 +1,7 @@
package db
import (
"sync"
"time"
)
@ -24,6 +25,7 @@ type (
//过期数据
ModelDataExpired struct {
key string //主key
mu sync.RWMutex //安全锁
keys map[string]struct{} //数据集合
expired time.Time //过期时间
}

View File

@ -61,7 +61,9 @@ func (this *DBConn) UpDateModelExpired(key string, childs map[string]struct{}, e
exp.keys = make(map[string]struct{})
}
for k, _ := range childs {
exp.mu.Lock()
exp.keys[k] = struct{}{}
exp.mu.Unlock()
}
}
exp.expired = time.Now().Add(expired)
@ -107,9 +109,11 @@ func (this *DBConn) scanning() {
for _, v := range temp {
pipe.Del(ctx, v.key)
if v.keys != nil {
v.mu.RLock()
for k1, _ := range v.keys {
pipe.Del(ctx, k1)
}
v.mu.RUnlock()
}
}
if _, err := pipe.Exec(ctx); err != nil {