REQ-3345: 添加限流

This commit is contained in:
yanglin 2025-02-06 17:28:27 +08:00
parent 5c7dd410d9
commit 20197be1ef
2 changed files with 8 additions and 8 deletions

View File

@ -46,22 +46,22 @@ class GroupMessageSyncHandler implements Runnable {
Timeline timeline = new Timeline(maxMs + 1, System.currentTimeMillis());
// don't change
long limit = 100L;
TimeNode head = timeline.head();
while (head != null) {
NimGroupGetMessagesResponse response = fetchMessages(head, limit);
TimeNode current = timeline.head();
while (current != null) {
NimGroupGetMessagesResponse response = fetchMessages(current, limit);
BizAssertions.assertTrue(response.isSuccess(), "fetch group messages failed");
List<NimGroupMessage> msgList = response.getMsgs();
if (CollectionUtils.isEmpty(msgList)) {
head = timeline.consume();
current = timeline.advance();
continue;
}
// response.size 不可靠
if (msgList.size() >= limit && head.isSplittable()) {
head = timeline.split();
if (msgList.size() >= limit && current.isSplittable()) {
current = timeline.split();
continue;
}
saveMessages(asGroupMessages(msgList));
head = timeline.consume();
current = timeline.advance();
}
}

View File

@ -38,7 +38,7 @@ public class Timeline {
return head();
}
public TimeNode consume() {
public TimeNode advance() {
TimeNode node = head();
BizAssertions.assertNotNull(node, "timeline is empty");
nodes.removeFirst();