32 lines
675 B
Go
32 lines
675 B
Go
package lru
|
|
|
|
import (
|
|
"context"
|
|
"gitee.com/timedb/wheatCache/pkg/event"
|
|
"time"
|
|
)
|
|
|
|
func (lru *SingleCache) cleanWork() {
|
|
cxt := context.Background()
|
|
for {
|
|
time.Sleep(2 * time.Second)
|
|
if lru.clearSize < lru.nowSize {
|
|
lruCleanEvent := event.NewEvent(CleanEventName)
|
|
lruCleanEvent.InitWaitEvent()
|
|
work := event.EventWorkFunc(func() (interface{}, error) {
|
|
err := lru.DelToClearSize()
|
|
return nil, err
|
|
})
|
|
|
|
lruCleanEvent.SetValue(WorkFuncEventKey, work)
|
|
|
|
lru.lruCleanProduce.Call(cxt, lruCleanEvent)
|
|
_, err := lruCleanEvent.StartWaitEvent(defaultWaitTime)
|
|
if err != nil {
|
|
//logx.With(cxt, ).Error("cleanWork err: %v", err)
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|