github.com/songzhibin97/gkit@v1.2.13/cache/local_cache/option.go (about) 1 package local_cache 2 3 import ( 4 "time" 5 6 "github.com/songzhibin97/gkit/options" 7 ) 8 9 type Config struct { 10 // defaultExpire 默认超时时间 11 defaultExpire time.Duration 12 13 // interval 间隔时间 14 interval time.Duration 15 // fn 哨兵周期执行的函数 16 fn func() 17 18 // capture 捕获删除对象时间 会返回kv值用于用户自定义处理 19 capture func(k string, v interface{}) 20 21 member map[string]Iterator 22 } 23 24 // SetInternal 设置间隔时间 25 func SetInternal(interval time.Duration) options.Option { 26 return func(c interface{}) { 27 c.(*Config).interval = interval 28 } 29 } 30 31 // SetDefaultExpire 设置默认的超时时间 32 func SetDefaultExpire(expire time.Duration) options.Option { 33 return func(c interface{}) { 34 c.(*Config).defaultExpire = expire 35 } 36 } 37 38 // SetFn 设置周期的执行函数,默认(不设置)是扫描全局清除过期的k 39 func SetFn(fn func()) options.Option { 40 return func(c interface{}) { 41 c.(*Config).fn = fn 42 } 43 } 44 45 // SetCapture 设置触发删除后的捕获函数, 数据删除后回调用设置的捕获函数 46 func SetCapture(capture func(k string, v interface{})) options.Option { 47 return func(c interface{}) { 48 c.(*Config).capture = capture 49 } 50 } 51 52 // SetMember 设置初始化存储的成员对象 53 func SetMember(m map[string]Iterator) options.Option { 54 return func(c interface{}) { 55 c.(*Config).member = m 56 } 57 }