Class MessageVisibilityExtendingSinkAdapter<T>
java.lang.Object
io.awspring.cloud.sqs.listener.sink.adapter.AbstractDelegatingMessageListeningSinkAdapter<T>
io.awspring.cloud.sqs.listener.sink.adapter.MessageVisibilityExtendingSinkAdapter<T>
- All Implemented Interfaces:
ConfigurableContainerComponent,MessageProcessingPipelineSink<T>,MessageSink<T>,SqsAsyncClientAware,TaskExecutorAware,Lifecycle,Phased,SmartLifecycle
public class MessageVisibilityExtendingSinkAdapter<T>
extends AbstractDelegatingMessageListeningSinkAdapter<T>
implements SqsAsyncClientAware
An
AbstractDelegatingMessageListeningSinkAdapter that adds an
MessageVisibilityExtendingSinkAdapter<T>.io.awspring.cloud.sqs.listener.sink.adapter.MessageVisibilityExtendingSinkAdapter.OriginalBatchMessageVisibilityExtendingInterceptor to the MessageProcessingContext. The interceptor
refreshes the visibility for remaining messages in the batch before each message is processed, except for the first.
After each message is processed, it is removed from the copy of the original batch that the interceptor holds.- Since:
- 3.0
- Author:
- Tomaz Fernandes
- See Also:
-
Field Summary
Fields inherited from interface org.springframework.context.SmartLifecycle
DEFAULT_PHASE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionemit(Collection<Message<T>> messages, MessageProcessingContext<T> context) Emit the providedMessageinstances to the providedAsyncMessageListener.voidsetMessageVisibility(Duration messageVisibility) voidsetSqsAsyncClient(software.amazon.awssdk.services.sqs.SqsAsyncClient sqsAsyncClient) Set theSqsAsyncClientinstance.Methods inherited from class io.awspring.cloud.sqs.listener.sink.adapter.AbstractDelegatingMessageListeningSinkAdapter
configure, getDelegate, isRunning, setMessagePipeline, setTaskExecutor, start, stopMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.context.SmartLifecycle
getPhase, isAutoStartup, stop
-
Constructor Details
-
MessageVisibilityExtendingSinkAdapter
-
-
Method Details
-
setMessageVisibility
-
setSqsAsyncClient
public void setSqsAsyncClient(software.amazon.awssdk.services.sqs.SqsAsyncClient sqsAsyncClient) Description copied from interface:SqsAsyncClientAwareSet theSqsAsyncClientinstance.- Specified by:
setSqsAsyncClientin interfaceSqsAsyncClientAware- Overrides:
setSqsAsyncClientin classAbstractDelegatingMessageListeningSinkAdapter<T>- Parameters:
sqsAsyncClient- the instance.
-
emit
public CompletableFuture<Void> emit(Collection<Message<T>> messages, MessageProcessingContext<T> context) Description copied from interface:MessageSinkEmit the providedMessageinstances to the providedAsyncMessageListener.- Specified by:
emitin interfaceMessageSink<T>- Parameters:
messages- the messages to emit.- Returns:
- a collection of
CompletableFutureinstances, each representing the completion signal of a single message processing.
-