diff --git a/pkg/lru/ttl.go b/pkg/lru/ttl.go index 9d04c59..a0933d8 100644 --- a/pkg/lru/ttl.go +++ b/pkg/lru/ttl.go @@ -1,7 +1,6 @@ package lru import ( - "fmt" "sync" "time" @@ -36,7 +35,6 @@ func (l *lruTTl) setKeys(key *proto.BaseKey) int64 { func (l *lruTTl) ttlKeyToMemoryBySecond() { t := time.Now() values := l.sk.PopLeft(float64(t.Unix())) - fmt.Println(len(values)) for _, val := range values { l.memoryKey <- val.(string) diff --git a/pkg/lru/worker.go b/pkg/lru/worker.go index 2009b0b..01373cd 100644 --- a/pkg/lru/worker.go +++ b/pkg/lru/worker.go @@ -68,18 +68,21 @@ func (lru *SingleCache) lruTtlWork() { } return keys, nil }) + cleanTTlTicker := time.NewTicker(500 * time.Millisecond) defer cleanTTlTicker.Stop() + for { // 清理事件 <-cleanTTlTicker.C - ttlEvent := lru.lruCleanProduce.NewEvent(TtlEventName) - ttlEvent.SetValue(WorkFuncEventKey, work) - if len(lru.lruTtlManage.memoryKey) == 0 { continue } + + ttlEvent := lru.lruCleanProduce.NewEvent(TtlEventName) + ttlEvent.SetValue(WorkFuncEventKey, work) ttlEvent.InitWaitEvent() + lru.lruCleanProduce.Call(ctx, ttlEvent) keys, err := ttlEvent.StartWaitEvent(time.Second * 2) lru.lruCleanProduce.Recovery(ttlEvent)