@@ -710,65 +710,66 @@ where
710710 . broker_runtime_inner
711711 . consumer_offset_manager ( )
712712 . query_then_erase_reset_offset ( topic, group, queue_id) ;
713- let get_message_result = if use_reset_offset_feature && reset_offset. is_some ( ) {
714- let mut get_message_result = GetMessageResult :: new ( ) ;
715- get_message_result. set_status ( Some ( GetMessageStatus :: OffsetReset ) ) ;
716- get_message_result. set_next_begin_offset ( reset_offset. unwrap ( ) ) ;
717- get_message_result. set_min_offset (
718- self . broker_runtime_inner
719- . message_store ( )
720- . as_ref ( )
721- . unwrap ( )
722- . get_min_offset_in_queue ( topic, queue_id) ,
723- ) ;
724- get_message_result. set_max_offset (
725- self . broker_runtime_inner
726- . message_store ( )
727- . as_ref ( )
728- . unwrap ( )
729- . get_max_offset_in_queue ( topic, queue_id) ,
730- ) ;
731- get_message_result. set_suggest_pulling_from_slave ( false ) ;
732- Some ( get_message_result)
733- } else {
734- let broadcast_init_offset = self . query_broadcast_pull_init_offset (
735- topic,
736- group,
737- queue_id,
738- & request_header,
739- & channel,
740- ) ;
741- if broadcast_init_offset >= 0 {
713+ let get_message_result =
714+ if let ( true , Some ( reset_offset) ) = ( use_reset_offset_feature, reset_offset) {
742715 let mut get_message_result = GetMessageResult :: new ( ) ;
743716 get_message_result. set_status ( Some ( GetMessageStatus :: OffsetReset ) ) ;
744- get_message_result. set_next_begin_offset ( broadcast_init_offset) ;
717+ get_message_result. set_next_begin_offset ( reset_offset) ;
718+ get_message_result. set_min_offset (
719+ self . broker_runtime_inner
720+ . message_store ( )
721+ . as_ref ( )
722+ . unwrap ( )
723+ . get_min_offset_in_queue ( topic, queue_id) ,
724+ ) ;
725+ get_message_result. set_max_offset (
726+ self . broker_runtime_inner
727+ . message_store ( )
728+ . as_ref ( )
729+ . unwrap ( )
730+ . get_max_offset_in_queue ( topic, queue_id) ,
731+ ) ;
732+ get_message_result. set_suggest_pulling_from_slave ( false ) ;
745733 Some ( get_message_result)
746734 } else {
747- let result = self
748- . broker_runtime_inner
749- . message_store ( )
750- . as_ref ( )
751- . unwrap ( )
752- . get_message (
753- group,
754- topic,
755- queue_id,
756- request_header. queue_offset ,
757- request_header. max_msg_nums ,
758- // MAX_PULL_MSG_SIZE,
759- Some ( message_filter. clone ( ) ) ,
760- )
761- . await ;
762- if result. is_none ( ) {
763- return Some (
764- response
765- . set_code ( ResponseCode :: SystemError )
766- . set_remark ( "store getMessage return None" ) ,
767- ) ;
735+ let broadcast_init_offset = self . query_broadcast_pull_init_offset (
736+ topic,
737+ group,
738+ queue_id,
739+ & request_header,
740+ & channel,
741+ ) ;
742+ if broadcast_init_offset >= 0 {
743+ let mut get_message_result = GetMessageResult :: new ( ) ;
744+ get_message_result. set_status ( Some ( GetMessageStatus :: OffsetReset ) ) ;
745+ get_message_result. set_next_begin_offset ( broadcast_init_offset) ;
746+ Some ( get_message_result)
747+ } else {
748+ let result = self
749+ . broker_runtime_inner
750+ . message_store ( )
751+ . as_ref ( )
752+ . unwrap ( )
753+ . get_message (
754+ group,
755+ topic,
756+ queue_id,
757+ request_header. queue_offset ,
758+ request_header. max_msg_nums ,
759+ // MAX_PULL_MSG_SIZE,
760+ Some ( message_filter. clone ( ) ) ,
761+ )
762+ . await ;
763+ if result. is_none ( ) {
764+ return Some (
765+ response
766+ . set_code ( ResponseCode :: SystemError )
767+ . set_remark ( "store getMessage return None" ) ,
768+ ) ;
769+ }
770+ result
768771 }
769- result
770- }
771- } ;
772+ } ;
772773 if let Some ( get_message_result) = get_message_result {
773774 return self
774775 . pull_message_result_handler
0 commit comments