You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by di...@apache.org on 2019/10/29 05:56:14 UTC
[rocketmq-client-go] branch master updated: fix(client):throw
exception when producer or consumer miss model (#269)
This is an automated email from the ASF dual-hosted git repository.
dinglei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-client-go.git
The following commit(s) were added to refs/heads/master by this push:
new 52006e3 fix(client):throw exception when producer or consumer miss model (#269)
52006e3 is described below
commit 52006e3aa28b104e7112bb608bc39e52c6a1dbe3
Author: rongtong <79...@qq.com>
AuthorDate: Tue Oct 29 13:56:06 2019 +0800
fix(client):throw exception when producer or consumer miss model (#269)
---
core/producer.go | 5 ++++-
core/push_consumer.go | 43 ++++++++++++++++++-------------------------
2 files changed, 22 insertions(+), 26 deletions(-)
diff --git a/core/producer.go b/core/producer.go
index 9c6901f..2e1279a 100644
--- a/core/producer.go
+++ b/core/producer.go
@@ -85,8 +85,11 @@ func newDefaultProducer(config *ProducerConfig) (*defaultProducer, error) {
var cproduer *C.struct_CProducer
if config.ProducerModel == OrderlyProducer {
cproduer = C.CreateOrderlyProducer(cs)
- } else {
+ } else if config.ProducerModel == CommonProducer {
cproduer = C.CreateProducer(cs)
+ } else {
+ C.free(unsafe.Pointer(cs))
+ return nil, errors.New("ProducerModel is invalid or empty")
}
C.free(unsafe.Pointer(cs))
diff --git a/core/push_consumer.go b/core/push_consumer.go
index bd7b68a..0dc27c4 100644
--- a/core/push_consumer.go
+++ b/core/push_consumer.go
@@ -185,33 +185,26 @@ func newPushConsumer(config *PushConsumerConfig) (PushConsumer, error) {
}
}
- if config.Model != 0 {
- var mode C.CMessageModel
- switch config.Model {
- case BroadCasting:
- mode = C.BROADCASTING
- case Clustering:
- mode = C.CLUSTERING
- }
- err = rmqError(C.SetPushConsumerMessageModel(cconsumer, mode))
-
- if err != NIL {
- return nil, err
- }
-
+ if config.Model == BroadCasting {
+ err = rmqError(C.SetPushConsumerMessageModel(cconsumer, C.BROADCASTING))
+ } else if config.Model == Clustering {
+ err = rmqError(C.SetPushConsumerMessageModel(cconsumer, C.CLUSTERING))
+ } else {
+ return nil, errors.New("model is invalid or empty")
+ }
+ if err != NIL {
+ return nil, err
}
- if config.ConsumerModel != 0 {
- switch config.ConsumerModel {
- case Orderly:
- err = rmqError(C.RegisterMessageCallbackOrderly(cconsumer, (C.MessageCallBack)(unsafe.Pointer(C.callback_cgo))))
- case CoCurrently:
- err = rmqError(C.RegisterMessageCallback(cconsumer, (C.MessageCallBack)(unsafe.Pointer(C.callback_cgo))))
- }
- if err != NIL {
- return nil, err
- }
-
+ if config.ConsumerModel == Orderly {
+ err = rmqError(C.RegisterMessageCallbackOrderly(cconsumer, (C.MessageCallBack)(unsafe.Pointer(C.callback_cgo))))
+ } else if config.ConsumerModel == CoCurrently {
+ err = rmqError(C.RegisterMessageCallback(cconsumer, (C.MessageCallBack)(unsafe.Pointer(C.callback_cgo))))
+ } else {
+ return nil, errors.New("consumer model is invalid or empty")
+ }
+ if err != NIL {
+ return nil, err
}
consumer.cconsumer = cconsumer