Вот мой код:
Код: Выделить всё
@SqsListener(value = "${sqs-url}", maxConcurrentMessages = "${maxConcurrentMessages:30}",
maxMessagesPerPoll = "${maxMessagesPerPoll:15}", pollTimeoutSeconds = "${pollTimeoutSeconds:5}")
public void listenEvent(List messages, BatchAcknowledgement ack) {
var successfullyProcessed = new HashSet();
// https://docs.awspring.io/spring-cloud-aws/docs/3.0.0/reference/html/index.html#batchacknowledgement
messages.forEach(message -> {
try {
// ... my logic ....
successfullyProcessed.add(message);
} catch (Exception e) {
log.error("Failed message={}", message, e);
}
});
ack.acknowledge(successfullyProcessed);
log.info("Acknowledged {} messages", successfullyProcessed.size());
}
Код: Выделить всё
//...
// https://docs.awspring.io/spring-cloud-aws/docs/3.0.0/reference/html/index.html#acknowledging-messages
factory.configure(options -> options
.maxDelayBetweenPolls(Duration.ofSeconds(5))
.acknowledgementMode(AcknowledgementMode.MANUAL)
.acknowledgementInterval(Duration.ofSeconds(5))
.acknowledgementThreshold(10)
.acknowledgementOrdering(AcknowledgementOrdering.PARALLEL));
Подробнее здесь: https://stackoverflow.com/questions/762 ... -aws-3-0-0