You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by aa...@apache.org on 2022/12/13 09:37:38 UTC

[rocketmq-apis] 01/02: Keep it latest with main

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

aaronai pushed a commit to branch java
in repository https://gitbox.apache.org/repos/asf/rocketmq-apis.git

commit 105dcb5495f3aa5f3be634078b827a10f682fa6d
Author: 凌楚 <ya...@alibaba-inc.com>
AuthorDate: Tue Dec 13 17:34:41 2022 +0800

    Keep it latest with main
---
 src/main/java/apache/rocketmq/v2/MQService.java    | 222 +++++++++++----------
 .../apache/rocketmq/v2/ReceiveMessageRequest.java  | 193 ++++++++++++++++++
 .../v2/ReceiveMessageRequestOrBuilder.java         |  15 ++
 .../proto/apache/rocketmq/v2/service.proto         |   1 +
 4 files changed, 321 insertions(+), 110 deletions(-)

diff --git a/src/main/java/apache/rocketmq/v2/MQService.java b/src/main/java/apache/rocketmq/v2/MQService.java
index 91da032..94ad1cb 100644
--- a/src/main/java/apache/rocketmq/v2/MQService.java
+++ b/src/main/java/apache/rocketmq/v2/MQService.java
@@ -193,121 +193,123 @@ public final class MQService {
       "QueryAssignmentResponse\022*\n\006status\030\001 \001(\0132" +
       "\032.apache.rocketmq.v2.Status\0223\n\013assignmen" +
       "ts\030\002 \003(\0132\036.apache.rocketmq.v2.Assignment" +
-      "\"\271\002\n\025ReceiveMessageRequest\022+\n\005group\030\001 \001(" +
+      "\"\220\003\n\025ReceiveMessageRequest\022+\n\005group\030\001 \001(" +
       "\0132\034.apache.rocketmq.v2.Resource\0227\n\rmessa" +
       "ge_queue\030\002 \001(\0132 .apache.rocketmq.v2.Mess" +
       "ageQueue\022?\n\021filter_expression\030\003 \001(\0132$.ap" +
       "ache.rocketmq.v2.FilterExpression\022\022\n\nbat" +
       "ch_size\030\004 \001(\005\022:\n\022invisible_duration\030\005 \001(" +
       "\0132\031.google.protobuf.DurationH\000\210\001\001\022\022\n\naut" +
-      "o_renew\030\006 \001(\010B\025\n\023_invisible_duration\"\273\001\n" +
-      "\026ReceiveMessageResponse\022,\n\006status\030\001 \001(\0132" +
-      "\032.apache.rocketmq.v2.StatusH\000\022.\n\007message" +
-      "\030\002 \001(\0132\033.apache.rocketmq.v2.MessageH\000\0228\n" +
-      "\022delivery_timestamp\030\003 \001(\0132\032.google.proto" +
-      "buf.TimestampH\000B\t\n\007content\"=\n\017AckMessage" +
-      "Entry\022\022\n\nmessage_id\030\001 \001(\t\022\026\n\016receipt_han" +
-      "dle\030\002 \001(\t\"\243\001\n\021AckMessageRequest\022+\n\005group" +
-      "\030\001 \001(\0132\034.apache.rocketmq.v2.Resource\022+\n\005" +
-      "topic\030\002 \001(\0132\034.apache.rocketmq.v2.Resourc" +
-      "e\0224\n\007entries\030\003 \003(\0132#.apache.rocketmq.v2." +
-      "AckMessageEntry\"o\n\025AckMessageResultEntry" +
-      "\022\022\n\nmessage_id\030\001 \001(\t\022\026\n\016receipt_handle\030\002" +
-      " \001(\t\022*\n\006status\030\003 \001(\0132\032.apache.rocketmq.v" +
-      "2.Status\"|\n\022AckMessageResponse\022*\n\006status" +
-      "\030\001 \001(\0132\032.apache.rocketmq.v2.Status\022:\n\007en" +
-      "tries\030\002 \003(\0132).apache.rocketmq.v2.AckMess" +
-      "ageResultEntry\"\347\001\n&ForwardMessageToDeadL" +
-      "etterQueueRequest\022+\n\005group\030\001 \001(\0132\034.apach" +
-      "e.rocketmq.v2.Resource\022+\n\005topic\030\002 \001(\0132\034." +
-      "apache.rocketmq.v2.Resource\022\026\n\016receipt_h" +
-      "andle\030\003 \001(\t\022\022\n\nmessage_id\030\004 \001(\t\022\030\n\020deliv" +
-      "ery_attempt\030\005 \001(\005\022\035\n\025max_delivery_attemp" +
-      "ts\030\006 \001(\005\"U\n\'ForwardMessageToDeadLetterQu" +
-      "eueResponse\022*\n\006status\030\001 \001(\0132\032.apache.roc" +
-      "ketmq.v2.Status\"\203\001\n\020HeartbeatRequest\0220\n\005" +
-      "group\030\001 \001(\0132\034.apache.rocketmq.v2.Resourc" +
-      "eH\000\210\001\001\0223\n\013client_type\030\002 \001(\0162\036.apache.roc" +
-      "ketmq.v2.ClientTypeB\010\n\006_group\"?\n\021Heartbe" +
-      "atResponse\022*\n\006status\030\001 \001(\0132\032.apache.rock" +
-      "etmq.v2.Status\"\375\001\n\025EndTransactionRequest" +
-      "\022+\n\005topic\030\001 \001(\0132\034.apache.rocketmq.v2.Res" +
-      "ource\022\022\n\nmessage_id\030\002 \001(\t\022\026\n\016transaction" +
-      "_id\030\003 \001(\t\022=\n\nresolution\030\004 \001(\0162).apache.r" +
-      "ocketmq.v2.TransactionResolution\0225\n\006sour" +
-      "ce\030\005 \001(\0162%.apache.rocketmq.v2.Transactio" +
-      "nSource\022\025\n\rtrace_context\030\006 \001(\t\"D\n\026EndTra" +
-      "nsactionResponse\022*\n\006status\030\001 \001(\0132\032.apach" +
-      "e.rocketmq.v2.Status\"-\n\034PrintThreadStack" +
-      "TraceCommand\022\r\n\005nonce\030\001 \001(\t\"Y\n\020ThreadSta" +
-      "ckTrace\022\r\n\005nonce\030\001 \001(\t\022\037\n\022thread_stack_t" +
-      "race\030\002 \001(\tH\000\210\001\001B\025\n\023_thread_stack_trace\"S" +
-      "\n\024VerifyMessageCommand\022\r\n\005nonce\030\001 \001(\t\022,\n" +
-      "\007message\030\002 \001(\0132\033.apache.rocketmq.v2.Mess" +
-      "age\"$\n\023VerifyMessageResult\022\r\n\005nonce\030\001 \001(" +
-      "\t\"i\n!RecoverOrphanedTransactionCommand\022," +
-      "\n\007message\030\001 \001(\0132\033.apache.rocketmq.v2.Mes" +
-      "sage\022\026\n\016transaction_id\030\002 \001(\t\"\252\004\n\020Telemet" +
-      "ryCommand\022/\n\006status\030\001 \001(\0132\032.apache.rocke" +
-      "tmq.v2.StatusH\001\210\001\001\0220\n\010settings\030\002 \001(\0132\034.a" +
-      "pache.rocketmq.v2.SettingsH\000\022B\n\022thread_s" +
-      "tack_trace\030\003 \001(\0132$.apache.rocketmq.v2.Th" +
-      "readStackTraceH\000\022H\n\025verify_message_resul" +
-      "t\030\004 \001(\0132\'.apache.rocketmq.v2.VerifyMessa" +
-      "geResultH\000\022e\n$recover_orphaned_transacti" +
-      "on_command\030\005 \001(\01325.apache.rocketmq.v2.Re" +
-      "coverOrphanedTransactionCommandH\000\022\\\n pri" +
-      "nt_thread_stack_trace_command\030\006 \001(\01320.ap" +
-      "ache.rocketmq.v2.PrintThreadStackTraceCo" +
-      "mmandH\000\022J\n\026verify_message_command\030\007 \001(\0132" +
-      "(.apache.rocketmq.v2.VerifyMessageComman" +
-      "dH\000B\t\n\007commandB\t\n\007_status\"\\\n\036NotifyClien" +
-      "tTerminationRequest\0220\n\005group\030\001 \001(\0132\034.apa" +
-      "che.rocketmq.v2.ResourceH\000\210\001\001B\010\n\006_group\"" +
-      "M\n\037NotifyClientTerminationResponse\022*\n\006st" +
-      "atus\030\001 \001(\0132\032.apache.rocketmq.v2.Status\"\335" +
-      "\001\n\036ChangeInvisibleDurationRequest\022+\n\005gro" +
-      "up\030\001 \001(\0132\034.apache.rocketmq.v2.Resource\022+" +
-      "\n\005topic\030\002 \001(\0132\034.apache.rocketmq.v2.Resou" +
-      "rce\022\026\n\016receipt_handle\030\003 \001(\t\0225\n\022invisible" +
-      "_duration\030\004 \001(\0132\031.google.protobuf.Durati" +
-      "on\022\022\n\nmessage_id\030\005 \001(\t\"e\n\037ChangeInvisibl" +
-      "eDurationResponse\022*\n\006status\030\001 \001(\0132\032.apac" +
-      "he.rocketmq.v2.Status\022\026\n\016receipt_handle\030" +
-      "\002 \001(\t2\340\t\n\020MessagingService\022]\n\nQueryRoute" +
-      "\022%.apache.rocketmq.v2.QueryRouteRequest\032" +
-      "&.apache.rocketmq.v2.QueryRouteResponse\"" +
-      "\000\022Z\n\tHeartbeat\022$.apache.rocketmq.v2.Hear" +
-      "tbeatRequest\032%.apache.rocketmq.v2.Heartb" +
-      "eatResponse\"\000\022`\n\013SendMessage\022&.apache.ro" +
-      "cketmq.v2.SendMessageRequest\032\'.apache.ro" +
-      "cketmq.v2.SendMessageResponse\"\000\022l\n\017Query" +
-      "Assignment\022*.apache.rocketmq.v2.QueryAss" +
-      "ignmentRequest\032+.apache.rocketmq.v2.Quer" +
-      "yAssignmentResponse\"\000\022k\n\016ReceiveMessage\022" +
-      ").apache.rocketmq.v2.ReceiveMessageReque" +
-      "st\032*.apache.rocketmq.v2.ReceiveMessageRe" +
-      "sponse\"\0000\001\022]\n\nAckMessage\022%.apache.rocket" +
-      "mq.v2.AckMessageRequest\032&.apache.rocketm" +
-      "q.v2.AckMessageResponse\"\000\022\234\001\n\037ForwardMes" +
-      "sageToDeadLetterQueue\022:.apache.rocketmq." +
-      "v2.ForwardMessageToDeadLetterQueueReques" +
-      "t\032;.apache.rocketmq.v2.ForwardMessageToD" +
-      "eadLetterQueueResponse\"\000\022i\n\016EndTransacti" +
-      "on\022).apache.rocketmq.v2.EndTransactionRe" +
-      "quest\032*.apache.rocketmq.v2.EndTransactio" +
-      "nResponse\"\000\022]\n\tTelemetry\022$.apache.rocket" +
-      "mq.v2.TelemetryCommand\032$.apache.rocketmq" +
-      ".v2.TelemetryCommand\"\000(\0010\001\022\204\001\n\027NotifyCli" +
-      "entTermination\0222.apache.rocketmq.v2.Noti" +
-      "fyClientTerminationRequest\0323.apache.rock" +
-      "etmq.v2.NotifyClientTerminationResponse\"" +
-      "\000\022\204\001\n\027ChangeInvisibleDuration\0222.apache.r" +
-      "ocketmq.v2.ChangeInvisibleDurationReques" +
-      "t\0323.apache.rocketmq.v2.ChangeInvisibleDu" +
-      "rationResponse\"\000B<\n\022apache.rocketmq.v2B\t" +
-      "MQServiceP\001\240\001\001\330\001\001\252\002\022Apache.Rocketmq.V2b\006" +
-      "proto3"
+      "o_renew\030\006 \001(\010\022<\n\024long_polling_timeout\030\007 " +
+      "\001(\0132\031.google.protobuf.DurationH\001\210\001\001B\025\n\023_" +
+      "invisible_durationB\027\n\025_long_polling_time" +
+      "out\"\273\001\n\026ReceiveMessageResponse\022,\n\006status" +
+      "\030\001 \001(\0132\032.apache.rocketmq.v2.StatusH\000\022.\n\007" +
+      "message\030\002 \001(\0132\033.apache.rocketmq.v2.Messa" +
+      "geH\000\0228\n\022delivery_timestamp\030\003 \001(\0132\032.googl" +
+      "e.protobuf.TimestampH\000B\t\n\007content\"=\n\017Ack" +
+      "MessageEntry\022\022\n\nmessage_id\030\001 \001(\t\022\026\n\016rece" +
+      "ipt_handle\030\002 \001(\t\"\243\001\n\021AckMessageRequest\022+" +
+      "\n\005group\030\001 \001(\0132\034.apache.rocketmq.v2.Resou" +
+      "rce\022+\n\005topic\030\002 \001(\0132\034.apache.rocketmq.v2." +
+      "Resource\0224\n\007entries\030\003 \003(\0132#.apache.rocke" +
+      "tmq.v2.AckMessageEntry\"o\n\025AckMessageResu" +
+      "ltEntry\022\022\n\nmessage_id\030\001 \001(\t\022\026\n\016receipt_h" +
+      "andle\030\002 \001(\t\022*\n\006status\030\003 \001(\0132\032.apache.roc" +
+      "ketmq.v2.Status\"|\n\022AckMessageResponse\022*\n" +
+      "\006status\030\001 \001(\0132\032.apache.rocketmq.v2.Statu" +
+      "s\022:\n\007entries\030\002 \003(\0132).apache.rocketmq.v2." +
+      "AckMessageResultEntry\"\347\001\n&ForwardMessage" +
+      "ToDeadLetterQueueRequest\022+\n\005group\030\001 \001(\0132" +
+      "\034.apache.rocketmq.v2.Resource\022+\n\005topic\030\002" +
+      " \001(\0132\034.apache.rocketmq.v2.Resource\022\026\n\016re" +
+      "ceipt_handle\030\003 \001(\t\022\022\n\nmessage_id\030\004 \001(\t\022\030" +
+      "\n\020delivery_attempt\030\005 \001(\005\022\035\n\025max_delivery" +
+      "_attempts\030\006 \001(\005\"U\n\'ForwardMessageToDeadL" +
+      "etterQueueResponse\022*\n\006status\030\001 \001(\0132\032.apa" +
+      "che.rocketmq.v2.Status\"\203\001\n\020HeartbeatRequ" +
+      "est\0220\n\005group\030\001 \001(\0132\034.apache.rocketmq.v2." +
+      "ResourceH\000\210\001\001\0223\n\013client_type\030\002 \001(\0162\036.apa" +
+      "che.rocketmq.v2.ClientTypeB\010\n\006_group\"?\n\021" +
+      "HeartbeatResponse\022*\n\006status\030\001 \001(\0132\032.apac" +
+      "he.rocketmq.v2.Status\"\375\001\n\025EndTransaction" +
+      "Request\022+\n\005topic\030\001 \001(\0132\034.apache.rocketmq" +
+      ".v2.Resource\022\022\n\nmessage_id\030\002 \001(\t\022\026\n\016tran" +
+      "saction_id\030\003 \001(\t\022=\n\nresolution\030\004 \001(\0162).a" +
+      "pache.rocketmq.v2.TransactionResolution\022" +
+      "5\n\006source\030\005 \001(\0162%.apache.rocketmq.v2.Tra" +
+      "nsactionSource\022\025\n\rtrace_context\030\006 \001(\t\"D\n" +
+      "\026EndTransactionResponse\022*\n\006status\030\001 \001(\0132" +
+      "\032.apache.rocketmq.v2.Status\"-\n\034PrintThre" +
+      "adStackTraceCommand\022\r\n\005nonce\030\001 \001(\t\"Y\n\020Th" +
+      "readStackTrace\022\r\n\005nonce\030\001 \001(\t\022\037\n\022thread_" +
+      "stack_trace\030\002 \001(\tH\000\210\001\001B\025\n\023_thread_stack_" +
+      "trace\"S\n\024VerifyMessageCommand\022\r\n\005nonce\030\001" +
+      " \001(\t\022,\n\007message\030\002 \001(\0132\033.apache.rocketmq." +
+      "v2.Message\"$\n\023VerifyMessageResult\022\r\n\005non" +
+      "ce\030\001 \001(\t\"i\n!RecoverOrphanedTransactionCo" +
+      "mmand\022,\n\007message\030\001 \001(\0132\033.apache.rocketmq" +
+      ".v2.Message\022\026\n\016transaction_id\030\002 \001(\t\"\252\004\n\020" +
+      "TelemetryCommand\022/\n\006status\030\001 \001(\0132\032.apach" +
+      "e.rocketmq.v2.StatusH\001\210\001\001\0220\n\010settings\030\002 " +
+      "\001(\0132\034.apache.rocketmq.v2.SettingsH\000\022B\n\022t" +
+      "hread_stack_trace\030\003 \001(\0132$.apache.rocketm" +
+      "q.v2.ThreadStackTraceH\000\022H\n\025verify_messag" +
+      "e_result\030\004 \001(\0132\'.apache.rocketmq.v2.Veri" +
+      "fyMessageResultH\000\022e\n$recover_orphaned_tr" +
+      "ansaction_command\030\005 \001(\01325.apache.rocketm" +
+      "q.v2.RecoverOrphanedTransactionCommandH\000" +
+      "\022\\\n print_thread_stack_trace_command\030\006 \001" +
+      "(\01320.apache.rocketmq.v2.PrintThreadStack" +
+      "TraceCommandH\000\022J\n\026verify_message_command" +
+      "\030\007 \001(\0132(.apache.rocketmq.v2.VerifyMessag" +
+      "eCommandH\000B\t\n\007commandB\t\n\007_status\"\\\n\036Noti" +
+      "fyClientTerminationRequest\0220\n\005group\030\001 \001(" +
+      "\0132\034.apache.rocketmq.v2.ResourceH\000\210\001\001B\010\n\006" +
+      "_group\"M\n\037NotifyClientTerminationRespons" +
+      "e\022*\n\006status\030\001 \001(\0132\032.apache.rocketmq.v2.S" +
+      "tatus\"\335\001\n\036ChangeInvisibleDurationRequest" +
+      "\022+\n\005group\030\001 \001(\0132\034.apache.rocketmq.v2.Res" +
+      "ource\022+\n\005topic\030\002 \001(\0132\034.apache.rocketmq.v" +
+      "2.Resource\022\026\n\016receipt_handle\030\003 \001(\t\0225\n\022in" +
+      "visible_duration\030\004 \001(\0132\031.google.protobuf" +
+      ".Duration\022\022\n\nmessage_id\030\005 \001(\t\"e\n\037ChangeI" +
+      "nvisibleDurationResponse\022*\n\006status\030\001 \001(\013" +
+      "2\032.apache.rocketmq.v2.Status\022\026\n\016receipt_" +
+      "handle\030\002 \001(\t2\340\t\n\020MessagingService\022]\n\nQue" +
+      "ryRoute\022%.apache.rocketmq.v2.QueryRouteR" +
+      "equest\032&.apache.rocketmq.v2.QueryRouteRe" +
+      "sponse\"\000\022Z\n\tHeartbeat\022$.apache.rocketmq." +
+      "v2.HeartbeatRequest\032%.apache.rocketmq.v2" +
+      ".HeartbeatResponse\"\000\022`\n\013SendMessage\022&.ap" +
+      "ache.rocketmq.v2.SendMessageRequest\032\'.ap" +
+      "ache.rocketmq.v2.SendMessageResponse\"\000\022l" +
+      "\n\017QueryAssignment\022*.apache.rocketmq.v2.Q" +
+      "ueryAssignmentRequest\032+.apache.rocketmq." +
+      "v2.QueryAssignmentResponse\"\000\022k\n\016ReceiveM" +
+      "essage\022).apache.rocketmq.v2.ReceiveMessa" +
+      "geRequest\032*.apache.rocketmq.v2.ReceiveMe" +
+      "ssageResponse\"\0000\001\022]\n\nAckMessage\022%.apache" +
+      ".rocketmq.v2.AckMessageRequest\032&.apache." +
+      "rocketmq.v2.AckMessageResponse\"\000\022\234\001\n\037For" +
+      "wardMessageToDeadLetterQueue\022:.apache.ro" +
+      "cketmq.v2.ForwardMessageToDeadLetterQueu" +
+      "eRequest\032;.apache.rocketmq.v2.ForwardMes" +
+      "sageToDeadLetterQueueResponse\"\000\022i\n\016EndTr" +
+      "ansaction\022).apache.rocketmq.v2.EndTransa" +
+      "ctionRequest\032*.apache.rocketmq.v2.EndTra" +
+      "nsactionResponse\"\000\022]\n\tTelemetry\022$.apache" +
+      ".rocketmq.v2.TelemetryCommand\032$.apache.r" +
+      "ocketmq.v2.TelemetryCommand\"\000(\0010\001\022\204\001\n\027No" +
+      "tifyClientTermination\0222.apache.rocketmq." +
+      "v2.NotifyClientTerminationRequest\0323.apac" +
+      "he.rocketmq.v2.NotifyClientTerminationRe" +
+      "sponse\"\000\022\204\001\n\027ChangeInvisibleDuration\0222.a" +
+      "pache.rocketmq.v2.ChangeInvisibleDuratio" +
+      "nRequest\0323.apache.rocketmq.v2.ChangeInvi" +
+      "sibleDurationResponse\"\000B<\n\022apache.rocket" +
+      "mq.v2B\tMQServiceP\001\240\001\001\330\001\001\252\002\022Apache.Rocket" +
+      "mq.V2b\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
@@ -363,7 +365,7 @@ public final class MQService {
     internal_static_apache_rocketmq_v2_ReceiveMessageRequest_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_apache_rocketmq_v2_ReceiveMessageRequest_descriptor,
-        new java.lang.String[] { "Group", "MessageQueue", "FilterExpression", "BatchSize", "InvisibleDuration", "AutoRenew", "InvisibleDuration", });
+        new java.lang.String[] { "Group", "MessageQueue", "FilterExpression", "BatchSize", "InvisibleDuration", "AutoRenew", "LongPollingTimeout", "InvisibleDuration", "LongPollingTimeout", });
     internal_static_apache_rocketmq_v2_ReceiveMessageResponse_descriptor =
       getDescriptor().getMessageTypes().get(8);
     internal_static_apache_rocketmq_v2_ReceiveMessageResponse_fieldAccessorTable = new
diff --git a/src/main/java/apache/rocketmq/v2/ReceiveMessageRequest.java b/src/main/java/apache/rocketmq/v2/ReceiveMessageRequest.java
index 8f19964..60acab1 100644
--- a/src/main/java/apache/rocketmq/v2/ReceiveMessageRequest.java
+++ b/src/main/java/apache/rocketmq/v2/ReceiveMessageRequest.java
@@ -111,6 +111,19 @@ private static final long serialVersionUID = 0L;
             autoRenew_ = input.readBool();
             break;
           }
+          case 58: {
+            com.google.protobuf.Duration.Builder subBuilder = null;
+            if (((bitField0_ & 0x00000002) != 0)) {
+              subBuilder = longPollingTimeout_.toBuilder();
+            }
+            longPollingTimeout_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry);
+            if (subBuilder != null) {
+              subBuilder.mergeFrom(longPollingTimeout_);
+              longPollingTimeout_ = subBuilder.buildPartial();
+            }
+            bitField0_ |= 0x00000002;
+            break;
+          }
           default: {
             if (!parseUnknownField(
                 input, unknownFields, extensionRegistry, tag)) {
@@ -288,6 +301,32 @@ private static final long serialVersionUID = 0L;
     return autoRenew_;
   }
 
+  public static final int LONG_POLLING_TIMEOUT_FIELD_NUMBER = 7;
+  private com.google.protobuf.Duration longPollingTimeout_;
+  /**
+   * <code>optional .google.protobuf.Duration long_polling_timeout = 7;</code>
+   * @return Whether the longPollingTimeout field is set.
+   */
+  @java.lang.Override
+  public boolean hasLongPollingTimeout() {
+    return ((bitField0_ & 0x00000002) != 0);
+  }
+  /**
+   * <code>optional .google.protobuf.Duration long_polling_timeout = 7;</code>
+   * @return The longPollingTimeout.
+   */
+  @java.lang.Override
+  public com.google.protobuf.Duration getLongPollingTimeout() {
+    return longPollingTimeout_ == null ? com.google.protobuf.Duration.getDefaultInstance() : longPollingTimeout_;
+  }
+  /**
+   * <code>optional .google.protobuf.Duration long_polling_timeout = 7;</code>
+   */
+  @java.lang.Override
+  public com.google.protobuf.DurationOrBuilder getLongPollingTimeoutOrBuilder() {
+    return longPollingTimeout_ == null ? com.google.protobuf.Duration.getDefaultInstance() : longPollingTimeout_;
+  }
+
   private byte memoizedIsInitialized = -1;
   @java.lang.Override
   public final boolean isInitialized() {
@@ -320,6 +359,9 @@ private static final long serialVersionUID = 0L;
     if (autoRenew_ != false) {
       output.writeBool(6, autoRenew_);
     }
+    if (((bitField0_ & 0x00000002) != 0)) {
+      output.writeMessage(7, getLongPollingTimeout());
+    }
     unknownFields.writeTo(output);
   }
 
@@ -353,6 +395,10 @@ private static final long serialVersionUID = 0L;
       size += com.google.protobuf.CodedOutputStream
         .computeBoolSize(6, autoRenew_);
     }
+    if (((bitField0_ & 0x00000002) != 0)) {
+      size += com.google.protobuf.CodedOutputStream
+        .computeMessageSize(7, getLongPollingTimeout());
+    }
     size += unknownFields.getSerializedSize();
     memoizedSize = size;
     return size;
@@ -392,6 +438,11 @@ private static final long serialVersionUID = 0L;
     }
     if (getAutoRenew()
         != other.getAutoRenew()) return false;
+    if (hasLongPollingTimeout() != other.hasLongPollingTimeout()) return false;
+    if (hasLongPollingTimeout()) {
+      if (!getLongPollingTimeout()
+          .equals(other.getLongPollingTimeout())) return false;
+    }
     if (!unknownFields.equals(other.unknownFields)) return false;
     return true;
   }
@@ -424,6 +475,10 @@ private static final long serialVersionUID = 0L;
     hash = (37 * hash) + AUTO_RENEW_FIELD_NUMBER;
     hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
         getAutoRenew());
+    if (hasLongPollingTimeout()) {
+      hash = (37 * hash) + LONG_POLLING_TIMEOUT_FIELD_NUMBER;
+      hash = (53 * hash) + getLongPollingTimeout().hashCode();
+    }
     hash = (29 * hash) + unknownFields.hashCode();
     memoizedHashCode = hash;
     return hash;
@@ -553,6 +608,7 @@ private static final long serialVersionUID = 0L;
       if (com.google.protobuf.GeneratedMessageV3
               .alwaysUseFieldBuilders) {
         getInvisibleDurationFieldBuilder();
+        getLongPollingTimeoutFieldBuilder();
       }
     }
     @java.lang.Override
@@ -586,6 +642,12 @@ private static final long serialVersionUID = 0L;
       bitField0_ = (bitField0_ & ~0x00000001);
       autoRenew_ = false;
 
+      if (longPollingTimeoutBuilder_ == null) {
+        longPollingTimeout_ = null;
+      } else {
+        longPollingTimeoutBuilder_.clear();
+      }
+      bitField0_ = (bitField0_ & ~0x00000002);
       return this;
     }
 
@@ -639,6 +701,14 @@ private static final long serialVersionUID = 0L;
         to_bitField0_ |= 0x00000001;
       }
       result.autoRenew_ = autoRenew_;
+      if (((from_bitField0_ & 0x00000002) != 0)) {
+        if (longPollingTimeoutBuilder_ == null) {
+          result.longPollingTimeout_ = longPollingTimeout_;
+        } else {
+          result.longPollingTimeout_ = longPollingTimeoutBuilder_.build();
+        }
+        to_bitField0_ |= 0x00000002;
+      }
       result.bitField0_ = to_bitField0_;
       onBuilt();
       return result;
@@ -706,6 +776,9 @@ private static final long serialVersionUID = 0L;
       if (other.getAutoRenew() != false) {
         setAutoRenew(other.getAutoRenew());
       }
+      if (other.hasLongPollingTimeout()) {
+        mergeLongPollingTimeout(other.getLongPollingTimeout());
+      }
       this.mergeUnknownFields(other.unknownFields);
       onChanged();
       return this;
@@ -1322,6 +1395,126 @@ private static final long serialVersionUID = 0L;
       onChanged();
       return this;
     }
+
+    private com.google.protobuf.Duration longPollingTimeout_;
+    private com.google.protobuf.SingleFieldBuilderV3<
+        com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> longPollingTimeoutBuilder_;
+    /**
+     * <code>optional .google.protobuf.Duration long_polling_timeout = 7;</code>
+     * @return Whether the longPollingTimeout field is set.
+     */
+    public boolean hasLongPollingTimeout() {
+      return ((bitField0_ & 0x00000002) != 0);
+    }
+    /**
+     * <code>optional .google.protobuf.Duration long_polling_timeout = 7;</code>
+     * @return The longPollingTimeout.
+     */
+    public com.google.protobuf.Duration getLongPollingTimeout() {
+      if (longPollingTimeoutBuilder_ == null) {
+        return longPollingTimeout_ == null ? com.google.protobuf.Duration.getDefaultInstance() : longPollingTimeout_;
+      } else {
+        return longPollingTimeoutBuilder_.getMessage();
+      }
+    }
+    /**
+     * <code>optional .google.protobuf.Duration long_polling_timeout = 7;</code>
+     */
+    public Builder setLongPollingTimeout(com.google.protobuf.Duration value) {
+      if (longPollingTimeoutBuilder_ == null) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        longPollingTimeout_ = value;
+        onChanged();
+      } else {
+        longPollingTimeoutBuilder_.setMessage(value);
+      }
+      bitField0_ |= 0x00000002;
+      return this;
+    }
+    /**
+     * <code>optional .google.protobuf.Duration long_polling_timeout = 7;</code>
+     */
+    public Builder setLongPollingTimeout(
+        com.google.protobuf.Duration.Builder builderForValue) {
+      if (longPollingTimeoutBuilder_ == null) {
+        longPollingTimeout_ = builderForValue.build();
+        onChanged();
+      } else {
+        longPollingTimeoutBuilder_.setMessage(builderForValue.build());
+      }
+      bitField0_ |= 0x00000002;
+      return this;
+    }
+    /**
+     * <code>optional .google.protobuf.Duration long_polling_timeout = 7;</code>
+     */
+    public Builder mergeLongPollingTimeout(com.google.protobuf.Duration value) {
+      if (longPollingTimeoutBuilder_ == null) {
+        if (((bitField0_ & 0x00000002) != 0) &&
+            longPollingTimeout_ != null &&
+            longPollingTimeout_ != com.google.protobuf.Duration.getDefaultInstance()) {
+          longPollingTimeout_ =
+            com.google.protobuf.Duration.newBuilder(longPollingTimeout_).mergeFrom(value).buildPartial();
+        } else {
+          longPollingTimeout_ = value;
+        }
+        onChanged();
+      } else {
+        longPollingTimeoutBuilder_.mergeFrom(value);
+      }
+      bitField0_ |= 0x00000002;
+      return this;
+    }
+    /**
+     * <code>optional .google.protobuf.Duration long_polling_timeout = 7;</code>
+     */
+    public Builder clearLongPollingTimeout() {
+      if (longPollingTimeoutBuilder_ == null) {
+        longPollingTimeout_ = null;
+        onChanged();
+      } else {
+        longPollingTimeoutBuilder_.clear();
+      }
+      bitField0_ = (bitField0_ & ~0x00000002);
+      return this;
+    }
+    /**
+     * <code>optional .google.protobuf.Duration long_polling_timeout = 7;</code>
+     */
+    public com.google.protobuf.Duration.Builder getLongPollingTimeoutBuilder() {
+      bitField0_ |= 0x00000002;
+      onChanged();
+      return getLongPollingTimeoutFieldBuilder().getBuilder();
+    }
+    /**
+     * <code>optional .google.protobuf.Duration long_polling_timeout = 7;</code>
+     */
+    public com.google.protobuf.DurationOrBuilder getLongPollingTimeoutOrBuilder() {
+      if (longPollingTimeoutBuilder_ != null) {
+        return longPollingTimeoutBuilder_.getMessageOrBuilder();
+      } else {
+        return longPollingTimeout_ == null ?
+            com.google.protobuf.Duration.getDefaultInstance() : longPollingTimeout_;
+      }
+    }
+    /**
+     * <code>optional .google.protobuf.Duration long_polling_timeout = 7;</code>
+     */
+    private com.google.protobuf.SingleFieldBuilderV3<
+        com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> 
+        getLongPollingTimeoutFieldBuilder() {
+      if (longPollingTimeoutBuilder_ == null) {
+        longPollingTimeoutBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+            com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>(
+                getLongPollingTimeout(),
+                getParentForChildren(),
+                isClean());
+        longPollingTimeout_ = null;
+      }
+      return longPollingTimeoutBuilder_;
+    }
     @java.lang.Override
     public final Builder setUnknownFields(
         final com.google.protobuf.UnknownFieldSet unknownFields) {
diff --git a/src/main/java/apache/rocketmq/v2/ReceiveMessageRequestOrBuilder.java b/src/main/java/apache/rocketmq/v2/ReceiveMessageRequestOrBuilder.java
index b6fbc15..664b989 100644
--- a/src/main/java/apache/rocketmq/v2/ReceiveMessageRequestOrBuilder.java
+++ b/src/main/java/apache/rocketmq/v2/ReceiveMessageRequestOrBuilder.java
@@ -94,4 +94,19 @@ public interface ReceiveMessageRequestOrBuilder extends
    * @return The autoRenew.
    */
   boolean getAutoRenew();
+
+  /**
+   * <code>optional .google.protobuf.Duration long_polling_timeout = 7;</code>
+   * @return Whether the longPollingTimeout field is set.
+   */
+  boolean hasLongPollingTimeout();
+  /**
+   * <code>optional .google.protobuf.Duration long_polling_timeout = 7;</code>
+   * @return The longPollingTimeout.
+   */
+  com.google.protobuf.Duration getLongPollingTimeout();
+  /**
+   * <code>optional .google.protobuf.Duration long_polling_timeout = 7;</code>
+   */
+  com.google.protobuf.DurationOrBuilder getLongPollingTimeoutOrBuilder();
 }
diff --git a/src/main/resources/proto/apache/rocketmq/v2/service.proto b/src/main/resources/proto/apache/rocketmq/v2/service.proto
index 8e880e2..6d203d4 100644
--- a/src/main/resources/proto/apache/rocketmq/v2/service.proto
+++ b/src/main/resources/proto/apache/rocketmq/v2/service.proto
@@ -96,6 +96,7 @@ message ReceiveMessageRequest {
   optional google.protobuf.Duration invisible_duration = 5;
   // For message auto renew and clean
   bool auto_renew = 6;
+  optional google.protobuf.Duration long_polling_timeout = 7;
 }
 
 message ReceiveMessageResponse {