拉取历史信息时,处理中间几个月时间没有消息的情况,最长间隔时24个月
This commit is contained in:
@@ -755,14 +755,22 @@ public class DatabaseStore {
|
|||||||
long[] before = new long[1];
|
long[] before = new long[1];
|
||||||
before[0] = beforeUid;
|
before[0] = beforeUid;
|
||||||
boolean hasMore = loadRemoteMessagesFromTable(user, conversation, before, count, MessageShardingUtil.getMessageTable(beforeUid), messages);
|
boolean hasMore = loadRemoteMessagesFromTable(user, conversation, before, count, MessageShardingUtil.getMessageTable(beforeUid), messages);
|
||||||
if (messages.size() < count) {
|
while (messages.size() < count && hasMore) {
|
||||||
if (hasMore) {
|
hasMore = loadRemoteMessagesFromTable(user, conversation, before, count - messages.size(), MessageShardingUtil.getMessageTable(beforeUid), messages);
|
||||||
loadRemoteMessagesFromTable(user, conversation, before, count - messages.size(), MessageShardingUtil.getMessageTable(beforeUid), messages);
|
}
|
||||||
} else {
|
|
||||||
String nexTable = MessageShardingUtil.getPreviousMessageTable(before[0]);
|
int month = 0;
|
||||||
if (!StringUtil.isNullOrEmpty(nexTable)) {
|
while (messages.size() < count && !DBUtil.IsEmbedDB && month++ < 24) {
|
||||||
loadRemoteMessagesFromTable(user, conversation, before, count - messages.size(), nexTable, messages);
|
String nexTable = MessageShardingUtil.getPreviousMessageTable(before[0]);
|
||||||
}
|
|
||||||
|
int size = messages.size();
|
||||||
|
hasMore = true;
|
||||||
|
while (size == messages.size() && hasMore) {
|
||||||
|
hasMore = loadRemoteMessagesFromTable(user, conversation, before, count - messages.size(), nexTable, messages);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (size < messages.size()) {
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user