REQ-3345: 同步消息
This commit is contained in:
parent
8fcb284cce
commit
c94e781f51
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user