Skip to content

Commit e3fa4a7

Browse files
committed
Docs: document partial acknowledgement failure handling in callbacks
- fix callback interface name to AsyncAcknowledgementResultCallback - explain that onFailure receives SqsAcknowledgementException on partial failures - add an example using successful/failed acknowledgement message lists for retry
1 parent fc08919 commit e3fa4a7

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

docs/src/main/asciidoc/sqs.adoc

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2020,7 +2020,7 @@ Implementations of this interface will be executed after an acknowledgement exec
20202020

20212021
==== Acknowledgement Result Callback
20222022

2023-
The framework offers the `AcknowledgementResultCallback` and `AsyncAcknowledgementCallback` interfaces that can be added to a `SqsMessageListenerContainer` or `SqsMessageListenerContainerFactory`.
2023+
The framework offers the `AcknowledgementResultCallback` and `AsyncAcknowledgementResultCallback` interfaces that can be added to a `SqsMessageListenerContainer` or `SqsMessageListenerContainerFactory`.
20242024

20252025
```java
20262026
public interface AcknowledgementResultCallback<T> {
@@ -2048,6 +2048,19 @@ public interface AsyncAcknowledgementResultCallback<T> {
20482048
}
20492049
```
20502050

2051+
If an acknowledgement operation partially fails, for example when `DeleteMessageBatch` returns failed entries, the callback `onFailure` receives a `SqsAcknowledgementException`.
2052+
Use `getSuccessfullyAcknowledgedMessages()` and `getFailedAcknowledgementMessages()` to inspect the acknowledgement result and retry only failed messages if needed.
2053+
2054+
```java
2055+
@Override
2056+
public void onFailure(Collection<Message<Object>> messages, Throwable t) {
2057+
if (t instanceof SqsAcknowledgementException ex) {
2058+
Collection<Message<?>> failedMessages = ex.getFailedAcknowledgementMessages();
2059+
// retry only failedMessages
2060+
}
2061+
}
2062+
```
2063+
20512064
```java
20522065
@Bean
20532066
public SqsMessageListenerContainerFactory<Object> defaultSqsListenerContainerFactory(SqsAsyncClient sqsAsyncClient) {

0 commit comments

Comments
 (0)