mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-03 06:24:03 +08:00
修复ttlcache可能缺失回收数据的问题
This commit is contained in:
@@ -55,17 +55,19 @@ func (this *List) Add(itemId uint64, expiresAt int64) {
|
|||||||
if oldExpiresAt == expiresAt {
|
if oldExpiresAt == expiresAt {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
delete(this.expireMap, oldExpiresAt)
|
delete(this.expireMap[oldExpiresAt], itemId)
|
||||||
|
if len(this.expireMap[oldExpiresAt]) == 0 {
|
||||||
|
delete(this.expireMap, oldExpiresAt)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
expireItemMap, ok := this.expireMap[expiresAt]
|
expireItemMap, ok := this.expireMap[expiresAt]
|
||||||
if ok {
|
if ok {
|
||||||
expireItemMap[itemId] = zero.New()
|
expireItemMap[itemId] = zero.New()
|
||||||
} else {
|
} else {
|
||||||
expireItemMap = ItemMap{
|
this.expireMap[expiresAt] = ItemMap{
|
||||||
itemId: zero.New(),
|
itemId: zero.New(),
|
||||||
}
|
}
|
||||||
this.expireMap[expiresAt] = expireItemMap
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.itemsMap[itemId] = expiresAt
|
this.itemsMap[itemId] = expiresAt
|
||||||
|
|||||||
Reference in New Issue
Block a user