Use `queryPaginator` when loading messages
This commit is contained in:
parent
53aa45a2bb
commit
cd49ea43c0
|
@ -129,8 +129,13 @@ public class MessagesDynamoDb extends AbstractDynamoDbStore {
|
||||||
.limit(numberOfMessagesToFetch)
|
.limit(numberOfMessagesToFetch)
|
||||||
.build();
|
.build();
|
||||||
List<OutgoingMessageEntity> messageEntities = new ArrayList<>(numberOfMessagesToFetch);
|
List<OutgoingMessageEntity> messageEntities = new ArrayList<>(numberOfMessagesToFetch);
|
||||||
for (Map<String, AttributeValue> message : db().query(queryRequest).items()) {
|
for (Map<String, AttributeValue> message : db().queryPaginator(queryRequest).items()) {
|
||||||
messageEntities.add(convertItemToOutgoingMessageEntity(message));
|
messageEntities.add(convertItemToOutgoingMessageEntity(message));
|
||||||
|
if (messageEntities.size() == numberOfMessagesToFetch) {
|
||||||
|
// queryPaginator() uses limit() as the page size, not as an absolute limit
|
||||||
|
// …but a page might be smaller than limit, because a page is capped at 1 MB
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return messageEntities;
|
return messageEntities;
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue