github.com/artisanhe/tools@v1.0.1-0.20210607022958-19a8fef2eb04/rocket/rocketmq.go (about) 1 package rocket 2 3 import ( 4 "github.com/artisanhe/tools/conf" 5 rocketmq "github.com/apache/rocketmq-client-go/core" 6 ) 7 8 type Producer struct { 9 GroupID string 10 NameServer string 11 AccessKey string 12 SecretKey string 13 SendMsgTimeout int 14 CompressLevel int 15 MaxMessageSize int 16 ProducerModel int 17 producer rocketmq.Producer 18 } 19 20 func (Producer) DockerDefaults() conf.DockerDefaults { 21 return conf.DockerDefaults{} 22 } 23 24 func (Producer) MarshalDefaults(v interface{}) { 25 if producer, ok := v.(*Producer); ok { 26 if producer.NameServer == "" { 27 producer.NameServer = "rocketmq" 28 } 29 if producer.GroupID == "" { 30 producer.GroupID = "g7pay" 31 } 32 if producer.ProducerModel == 0 { 33 producer.ProducerModel = 1 34 } 35 36 } 37 } 38 39 func (p *Producer) Init() { 40 41 pc := &rocketmq.ProducerConfig{ 42 ClientConfig: rocketmq.ClientConfig{ 43 GroupID: p.GroupID, 44 NameServer: p.NameServer, 45 }, 46 ProducerModel: rocketmq.ProducerModel(p.ProducerModel), 47 } 48 if p.AccessKey != "" && p.SecretKey != "" { 49 pc.ClientConfig.Credentials = &rocketmq.SessionCredentials{ 50 AccessKey: p.AccessKey, 51 SecretKey: p.SecretKey, 52 } 53 } 54 55 if p.SendMsgTimeout != 0 { 56 pc.SendMsgTimeout = p.SendMsgTimeout 57 } 58 59 if p.CompressLevel != 0 { 60 pc.CompressLevel = p.CompressLevel 61 } 62 63 if p.MaxMessageSize != 0 { 64 pc.MaxMessageSize = p.MaxMessageSize 65 } 66 67 producer, err := rocketmq.NewProducer(pc) 68 if err != nil { 69 panic(err) 70 71 } 72 p.producer = producer 73 74 } 75 76 func (p *Producer) Get() rocketmq.Producer { 77 return p.producer 78 } 79 80 type PushConsumer struct { 81 GroupID string 82 NameServer string 83 AccessKey string 84 SecretKey string 85 MessageModel int 86 ConsumerModel int 87 pushConsumer rocketmq.PushConsumer 88 } 89 90 func (PushConsumer) DockerDefaults() conf.DockerDefaults { 91 return conf.DockerDefaults{} 92 } 93 94 func (PushConsumer) MarshalDefaults(v interface{}) { 95 if pushConsumer, ok := v.(*PushConsumer); ok { 96 if pushConsumer.NameServer == "" { 97 pushConsumer.NameServer = "rocketmq" 98 } 99 if pushConsumer.GroupID == "" { 100 pushConsumer.GroupID = "g7pay" 101 } 102 if pushConsumer.ConsumerModel == 0 { 103 pushConsumer.ConsumerModel = 1 104 } 105 if pushConsumer.MessageModel == 0 { 106 pushConsumer.MessageModel = 1 107 } 108 } 109 } 110 111 func (p *PushConsumer) Init() { 112 113 config := &rocketmq.PushConsumerConfig{ 114 ClientConfig: rocketmq.ClientConfig{ 115 GroupID: p.GroupID, 116 NameServer: p.NameServer, 117 }, 118 Model: rocketmq.MessageModel(p.MessageModel), 119 ConsumerModel: rocketmq.ConsumerModel(p.ConsumerModel), 120 } 121 if p.AccessKey != "" && p.SecretKey != "" { 122 config.ClientConfig.Credentials = &rocketmq.SessionCredentials{ 123 AccessKey: p.AccessKey, 124 SecretKey: p.SecretKey, 125 } 126 } 127 consumer, err := rocketmq.NewPushConsumer(config) 128 if err != nil { 129 panic(err) 130 131 } 132 p.pushConsumer = consumer 133 } 134 135 func (p *PushConsumer) Get() rocketmq.PushConsumer { 136 return p.pushConsumer 137 } 138 139 type PullConsumer struct { 140 GroupID string 141 NameServer string 142 AccessKey string 143 SecretKey string 144 145 pullConsumer rocketmq.PullConsumer 146 } 147 148 func (PullConsumer) DockerDefaults() conf.DockerDefaults { 149 return conf.DockerDefaults{} 150 } 151 152 func (PullConsumer) MarshalDefaults(v interface{}) { 153 if pullConsumer, ok := v.(*PullConsumer); ok { 154 if pullConsumer.NameServer == "" { 155 pullConsumer.NameServer = "rocketmq" 156 } 157 if pullConsumer.GroupID == "" { 158 pullConsumer.GroupID = "g7pay" 159 } 160 } 161 } 162 163 func (p *PullConsumer) Init() { 164 config := &rocketmq.PullConsumerConfig{ 165 ClientConfig: rocketmq.ClientConfig{ 166 GroupID: p.GroupID, 167 NameServer: p.NameServer, 168 }, 169 } 170 if p.AccessKey != "" && p.SecretKey != "" { 171 config.ClientConfig.Credentials = &rocketmq.SessionCredentials{ 172 AccessKey: p.AccessKey, 173 SecretKey: p.SecretKey, 174 } 175 } 176 177 pullConsumer, err := rocketmq.NewPullConsumer(config) 178 if err != nil { 179 panic(err) 180 181 } 182 p.pullConsumer = pullConsumer 183 } 184 185 func (p *PullConsumer) Get() rocketmq.PullConsumer { 186 return p.pullConsumer 187 }