@@ -49,17 +49,18 @@ type Cache interface {
4949}
5050
5151type baseCache struct {
52- clock Clock
53- size int
54- loaderExpireFunc LoaderExpireFunc
55- evictedFunc EvictedFunc
56- purgeVisitorFunc PurgeVisitorFunc
57- addedFunc AddedFunc
58- deserializeFunc DeserializeFunc
59- serializeFunc SerializeFunc
60- expiration * time.Duration
61- mu sync.RWMutex
62- loadGroup Group
52+ clock Clock
53+ size int
54+ loaderExpireFunc LoaderExpireFunc
55+ evictedFunc EvictedFunc
56+ purgeVisitorFunc PurgeVisitorFunc
57+ addedFunc AddedFunc
58+ deserializeFunc DeserializeFunc
59+ serializeFunc SerializeFunc
60+ expiration * time.Duration
61+ expireCheckInterval * time.Duration
62+ mu sync.RWMutex
63+ loadGroup Group
6364 * stats
6465}
6566
@@ -74,16 +75,17 @@ type (
7475)
7576
7677type CacheBuilder struct {
77- clock Clock
78- tp string
79- size int
80- loaderExpireFunc LoaderExpireFunc
81- evictedFunc EvictedFunc
82- purgeVisitorFunc PurgeVisitorFunc
83- addedFunc AddedFunc
84- expiration * time.Duration
85- deserializeFunc DeserializeFunc
86- serializeFunc SerializeFunc
78+ clock Clock
79+ tp string
80+ size int
81+ loaderExpireFunc LoaderExpireFunc
82+ evictedFunc EvictedFunc
83+ purgeVisitorFunc PurgeVisitorFunc
84+ addedFunc AddedFunc
85+ expiration * time.Duration
86+ expireCheckInterval * time.Duration
87+ deserializeFunc DeserializeFunc
88+ serializeFunc SerializeFunc
8789}
8890
8991func New (size int ) * CacheBuilder {
@@ -168,6 +170,11 @@ func (cb *CacheBuilder) Expiration(expiration time.Duration) *CacheBuilder {
168170 return cb
169171}
170172
173+ func (cb * CacheBuilder ) ExpireCheckInterval (expireCheckInterval time.Duration ) * CacheBuilder {
174+ cb .expireCheckInterval = & expireCheckInterval
175+ return cb
176+ }
177+
171178func (cb * CacheBuilder ) Build () Cache {
172179 if cb .size <= 0 && cb .tp != TYPE_SIMPLE {
173180 panic ("gcache: Cache size <= 0" )
@@ -201,6 +208,7 @@ func buildCache(c *baseCache, cb *CacheBuilder) {
201208 c .serializeFunc = cb .serializeFunc
202209 c .evictedFunc = cb .evictedFunc
203210 c .purgeVisitorFunc = cb .purgeVisitorFunc
211+ c .expireCheckInterval = cb .expireCheckInterval
204212 c .stats = & stats {}
205213}
206214
0 commit comments