Merge branch 'dev' of http://git.legu.cc/liwei_3d/go_dreamfactory into dev
This commit is contained in:
commit
d97813c6c2
@ -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 //过期时间
|
||||
}
|
||||
|
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user