Use queryPaginator when loading messages

This commit is contained in:
Chris Eager
2021-09-14 15:51:42 -07:00
committed by Jon Chambers
parent 53aa45a2bb
commit cd49ea43c0

View File

@@ -129,8 +129,13 @@ public class MessagesDynamoDb extends AbstractDynamoDbStore {
.limit(numberOfMessagesToFetch)
.build();
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));
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;
});