in powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/SqsUtils.java [481:506]
public static <R> List<R> batchProcessor(final SQSEvent event,
final boolean suppressException,
final SqsMessageHandler<R> handler,
final boolean deleteNonRetryableMessageFromQueue,
final Class<? extends Exception>... nonRetryableExceptions) {
final List<R> handlerReturn = new ArrayList<>();
if(client == null) {
client = SqsClient.create();
}
BatchContext batchContext = new BatchContext(client);
for (SQSMessage message : event.getRecords()) {
try {
handlerReturn.add(handler.process(message));
batchContext.addSuccess(message);
} catch (Exception e) {
batchContext.addFailure(message, e);
}
}
batchContext.processSuccessAndHandleFailed(handlerReturn, suppressException, deleteNonRetryableMessageFromQueue, nonRetryableExceptions);
return handlerReturn;
}