Repository: mxsm/rocketmq-rust (language: rust)

Issue:
[Feature🚀] Implement PopMessageProcessor#append_check_point method
### Is Your Feature Request Related to a Problem?

_No response_

### Describe the Solution You'd Like

_No response_

### Describe Alternatives You've Considered

_No response_

### Additional Context

_No response_


Discussion / hints:

Fix patch:
diff --git a/rocketmq-broker/src/processor/pop_message_processor.rs b/rocketmq-broker/src/processor/pop_message_processor.rs
index d9e4d8ce..da38dbbf 100644
--- a/rocketmq-broker/src/processor/pop_message_processor.rs
+++ b/rocketmq-broker/src/processor/pop_message_processor.rs
@@ -1192,7 +1192,36 @@ where
         pop_time: i64,
         broker_name: &str,
     ) -> bool {
-        unimplemented!()
+        let mut ck = PopCheckPoint {
+            start_offset: offset,
+            pop_time,
+            invisible_time: request_header.invisible_time as i64,
+            bit_map: 0,
+            num: get_message_tmp_result.message_mapped_list().len() as u8,
+            queue_id,
+            topic: topic.into(),
+            cid: request_header.consumer_group.clone(),
+            broker_name: Some(broker_name.into()),
+            ..Default::default()
+        };
+        for msg_queue_offset in get_message_tmp_result.message_queue_offset() {
+            ck.add_diff(((*msg_queue_offset) as i64 - offset) as i32);
+        }
+        let pop_buffer_merge_service_ref_mut = self.pop_buffer_merge_service.mut_from_ref();
+        match pop_buffer_merge_service_ref_mut.add_ck(
+            &ck,
+            revive_qid,
+            -1,
+            get_message_tmp_result.next_begin_offset(),
+        ) {
+            true => true,
+            false => pop_buffer_merge_service_ref_mut.add_ck_just_offset(
+                ck,
+                revive_qid,
+                -1,
+                get_message_tmp_result.next_begin_offset(),
+            ),
+        }
     }
 
     fn is_pop_should_stop(
diff --git a/rocketmq-broker/src/processor/processor_service/pop_buffer_merge_service.rs b/rocketmq-broker/src/processor/processor_service/pop_buffer_merge_service.rs
index 9484442b..f71b1799 100644
--- a/rocketmq-broker/src/processor/processor_service/pop_buffer_merge_service.rs
+++ b/rocketmq-broker/src/processor/processor_service/pop_buffer_merge_service.rs
@@ -102,6 +102,26 @@ impl<MS> PopBufferMergeService<MS> {
 }
 
 impl<MS: MessageStore> PopBufferMergeService<MS> {
+    pub fn add_ck(
+        &mut self,
+        point: &PopCheckPoint,
+        revive_queue_id: i32,
+        revive_queue_offset: i64,
+        next_begin_offset: i64,
+    ) -> bool {
+        unimplemented!("add_ck  not implemented")
+    }
+
+    pub fn add_ck_just_offset(
+        &mut self,
+        point: PopCheckPoint,
+        revive_queue_id: i32,
+        revive_queue_offset: i64,
+        next_begin_offset: i64,
+    ) -> bool {
+        unimplemented!("add_ck  not implemented")
+    }
+
     pub fn add_ack(&mut self, revive_qid: i32, ack_msg: &dyn AckMessage) -> bool {
         if !self
             .broker_runtime_inner


Test patch: