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  }