github.com/songzhibin97/gkit@v1.2.13/goroutine/option.go (about) 1 package goroutine 2 3 import ( 4 "time" 5 6 "github.com/songzhibin97/gkit/log" 7 "github.com/songzhibin97/gkit/options" 8 ) 9 10 // config 11 type config struct { 12 13 // stopTimeout: 关闭超时时间 14 // 控制shutdown关闭超时时间 15 // <=0 不启动超时时间 16 stopTimeout time.Duration 17 18 // max 最大goroutine以及初始化channel大小,channel长度不可更改 19 max int64 20 21 // idle 闲置goroutine大小 22 idle int64 23 24 // checkTime 检查时间 25 checkTime time.Duration 26 27 // logger 日志输出对象 28 logger log.Logger 29 } 30 31 // SetStopTimeout 设置停止超时时间 32 func SetStopTimeout(d time.Duration) options.Option { 33 return func(c interface{}) { c.(*config).stopTimeout = d } 34 } 35 36 // SetMax 设置pool最大容量 37 func SetMax(max int64) options.Option { 38 return func(c interface{}) { c.(*config).max = max } 39 } 40 41 // SetIdle 这是pool闲置goroutine数量 42 func SetIdle(idle int64) options.Option { 43 return func(c interface{}) { c.(*config).idle = idle } 44 } 45 46 // SetCheckTime 设置检查时间 47 func SetCheckTime(d time.Duration) options.Option { 48 return func(c interface{}) { c.(*config).checkTime = d } 49 } 50 51 // SetLogger 设置日志对象 52 func SetLogger(logger log.Logger) options.Option { 53 return func(c interface{}) { c.(*config).logger = logger } 54 }