REQ-3345: 同步消息

This commit is contained in:
yanglin 2025-01-23 14:26:08 +08:00
parent 8fcb284cce
commit c94e781f51
2 changed files with 7 additions and 8 deletions

View File

@ -53,19 +53,16 @@ class GroupMessageSyncer implements Runnable {
BizAssertions.assertTrue(response.isSuccess(), "fetch group messages failed");
List<NimGroupMessage> msgList = response.getMsgs();
if (CollectionUtils.isEmpty(msgList)) {
timeline.consume();
node = timeline.peek();
node = timeline.consume();
continue;
}
// response.size 不可靠
if (msgList.size() == limit && node.isSplittable()) {
timeline.split();
node = timeline.peek();
node = timeline.split();
continue;
}
saveMessages(asGroupMessages(msgList));
timeline.consume();
node = timeline.peek();
node = timeline.consume();
}
}

View File

@ -27,7 +27,7 @@ public class Timeline {
this.nodes.addAll(0, nodes);
}
public void split() {
public TimeNode split() {
TimeNode node = nodes.peek();
BizAssertions.assertNotNull(node, "timeline is empty");
//noinspection DataFlowIssue
@ -35,13 +35,15 @@ public class Timeline {
nodes.removeFirst();
splitCount *= 2;
prepend(split(node.getBeginMs(), node.getEndMs(), splitCount));
return peek();
}
public void consume() {
public TimeNode consume() {
TimeNode node = nodes.peek();
BizAssertions.assertNotNull(node, "timeline is empty");
nodes.removeFirst();
splitCount = 1;
return peek();
}
@Nullable