github.com/qxnw/lib4go@v0.0.0-20180426074627-c80c7e84b925/mq/mq.options.go (about) 1 package mq 2 3 import "github.com/qxnw/lib4go/logger" 4 5 type OptionConf struct { 6 Logger logger.ILogger 7 Address string `json:"address"` 8 Version string `json:"version"` 9 Persistent string `json:"persistent"` 10 Ack string `json:"ack"` 11 Retry bool `json:"retry"` 12 Key string `json:"key"` 13 Raw string `json:"raw"` 14 } 15 16 //Option 配置选项 17 type Option func(*OptionConf) 18 19 //WithConf 根据配置文件初始化 20 func WithConf(conf *OptionConf) Option { 21 return func(o *OptionConf) { 22 o = conf 23 } 24 } 25 26 //WithLogger 设置日志记录组件 27 func WithLogger(logger logger.ILogger) Option { 28 return func(o *OptionConf) { 29 o.Logger = logger 30 } 31 } 32 33 //WithVersion 设置版本号 34 func WithVersion(version string) Option { 35 return func(o *OptionConf) { 36 o.Version = version 37 } 38 } 39 40 //WithPersistent 设置数据模式 41 func WithPersistent(persistent string) Option { 42 return func(o *OptionConf) { 43 o.Persistent = persistent 44 } 45 } 46 47 //WithAck 设置客户端确认模式 48 func WithAck(ack string) Option { 49 return func(o *OptionConf) { 50 o.Ack = ack 51 } 52 } 53 54 //WithRaw 设置配置原串 55 func WithRaw(raw string) Option { 56 return func(o *OptionConf) { 57 o.Raw = raw 58 } 59 } 60 61 //WithRetrySend 发送失败后重试 62 func WithRetrySend(b bool) Option { 63 return func(o *OptionConf) { 64 o.Retry = b 65 } 66 } 67 68 //WithSignKey 设置数据加密key 69 func WithSignKey(key string) Option { 70 return func(o *OptionConf) { 71 o.Key = key 72 } 73 }