You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by li...@apache.org on 2021/10/21 04:50:55 UTC

[rocketmq-client-cpp] branch main updated: Messages assign unique message identifiers in constructor and reuse them when filling send message request (#375)

This is an automated email from the ASF dual-hosted git repository.

lizhanhui pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/rocketmq-client-cpp.git


The following commit(s) were added to refs/heads/main by this push:
     new f8836bd  Messages assign unique message identifiers in constructor and reuse them when filling send message request (#375)
f8836bd is described below

commit f8836bd14041e6c414eaecadb326937a408ff226
Author: aaron ai <ya...@gmail.com>
AuthorDate: Thu Oct 21 12:50:49 2021 +0800

    Messages assign unique message identifiers in constructor and reuse them when filling send message request (#375)
---
 example/rocketmq/ExampleProducer.cpp         | 12 ++++++------
 src/main/cpp/rocketmq/ProducerImpl.cpp       |  9 +++------
 src/main/cpp/rocketmq/include/ProducerImpl.h |  4 ++--
 3 files changed, 11 insertions(+), 14 deletions(-)

diff --git a/example/rocketmq/ExampleProducer.cpp b/example/rocketmq/ExampleProducer.cpp
index e3e2c80..2fda81f 100644
--- a/example/rocketmq/ExampleProducer.cpp
+++ b/example/rocketmq/ExampleProducer.cpp
@@ -60,11 +60,6 @@ int main(int argc, char* argv[]) {
   producer.setResourceNamespace(resource_namespace);
   producer.setCredentialsProvider(std::make_shared<ConfigFileCredentialsProvider>());
 
-  MQMessage message;
-  message.setTopic(topic);
-  message.setTags("TagA");
-  message.setKey("Yuck! Why-plural?");
-
   std::atomic_bool stopped;
   std::atomic_long count(0);
 
@@ -83,11 +78,16 @@ int main(int argc, char* argv[]) {
 
   std::string body = randomString(1024 * 4);
   std::cout << "Message body size: " << body.length() << std::endl;
-  message.setBody(body);
 
   try {
     producer.start();
     for (int i = 0; i < 16; ++i) {
+      MQMessage message;
+      message.setTopic(topic);
+      message.setTags("TagA");
+      message.setKey("Yuck! Why-plural?");
+      message.setBody(body);
+
       SendResult sendResult = producer.send(message);
       std::cout << sendResult.getMessageQueue().simpleName() << ": " << sendResult.getMsgId() << std::endl;
       count++;
diff --git a/src/main/cpp/rocketmq/ProducerImpl.cpp b/src/main/cpp/rocketmq/ProducerImpl.cpp
index 4145e0a..034c920 100644
--- a/src/main/cpp/rocketmq/ProducerImpl.cpp
+++ b/src/main/cpp/rocketmq/ProducerImpl.cpp
@@ -106,8 +106,8 @@ bool ProducerImpl::validate(const MQMessage& message) {
   return MixAll::validate(message);
 }
 
-std::string ProducerImpl::wrapSendMessageRequest(const MQMessage& message, SendMessageRequest& request,
-                                                 const MQMessageQueue& message_queue) {
+void ProducerImpl::wrapSendMessageRequest(const MQMessage& message, SendMessageRequest& request,
+                                          const MQMessageQueue& message_queue) {
   request.mutable_message()->mutable_topic()->set_resource_namespace(resource_namespace_);
   request.mutable_message()->mutable_topic()->set_name(message.getTopic());
 
@@ -184,12 +184,9 @@ std::string ProducerImpl::wrapSendMessageRequest(const MQMessage& message, SendM
     request.mutable_message()->mutable_user_attribute()->insert({item.first, item.second});
   }
 
-  // Create unique message-id
-  std::string message_id = UniqueIdGenerator::instance().next();
-  system_attribute->set_message_id(message_id);
+  system_attribute->set_message_id(message.getMsgId());
   system_attribute->set_partition_id(message_queue.getQueueId());
   SPDLOG_TRACE("SendMessageRequest: {}", request.DebugString());
-  return message_id;
 }
 
 SendResult ProducerImpl::send(const MQMessage& message, std::error_code& ec) noexcept {
diff --git a/src/main/cpp/rocketmq/include/ProducerImpl.h b/src/main/cpp/rocketmq/include/ProducerImpl.h
index 678bcc3..e28f8a3 100644
--- a/src/main/cpp/rocketmq/include/ProducerImpl.h
+++ b/src/main/cpp/rocketmq/include/ProducerImpl.h
@@ -145,8 +145,8 @@ private:
   void takeMessageQueuesRoundRobin(const TopicPublishInfoPtr& publish_info, std::vector<MQMessageQueue>& message_queues,
                                    int number);
 
-  std::string wrapSendMessageRequest(const MQMessage& message, SendMessageRequest& request,
-                                     const MQMessageQueue& message_queue);
+  void wrapSendMessageRequest(const MQMessage& message, SendMessageRequest& request,
+                              const MQMessageQueue& message_queue);
 
   bool isRunning() const;