io.smallrye.reactive.messaging.aws.sqs.ack.SqsDeleteAckHandler Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of smallrye-reactive-messaging-aws-sqs Show documentation
Show all versions of smallrye-reactive-messaging-aws-sqs Show documentation
A module for Smallrye reactive messaging integration with AWS SQS Service
The newest version!
package io.smallrye.reactive.messaging.aws.sqs.ack;
import io.smallrye.mutiny.Uni;
import io.smallrye.reactive.messaging.aws.sqs.SqsAckHandler;
import io.smallrye.reactive.messaging.aws.sqs.SqsMessage;
import software.amazon.awssdk.services.sqs.SqsAsyncClient;
import software.amazon.awssdk.services.sqs.model.DeleteMessageRequest;
public class SqsDeleteAckHandler implements SqsAckHandler {
private final SqsAsyncClient client;
private final Uni queueUrlUni;
public SqsDeleteAckHandler(SqsAsyncClient client, Uni queueUrlUni) {
this.client = client;
this.queueUrlUni = queueUrlUni;
}
@Override
public Uni handle(SqsMessage message) {
return queueUrlUni.map(queueUrl -> DeleteMessageRequest.builder()
.queueUrl(queueUrl)
.receiptHandle(message.getMessage().receiptHandle())
.build())
.chain(request -> Uni.createFrom().completionStage(() -> client.deleteMessage(request)))
.replaceWithVoid()
.emitOn(message::runOnMessageContext);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy