Подтверждение руководства Spring SqsTemplate: как это сделать?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Подтверждение руководства Spring SqsTemplate: как это сделать?

Сообщение Anonymous »

Я использую Spring Boot 3.2.2 и Spring Cloud AWS 3.1.0, и мне нужно получить сообщение из очереди AWS SQS и вручную подтвердить его после успешной обработки сообщения. Я могу прочитать сообщение, но не могу понять, как отправить подтверждение вручную.
Я создал собственный SqsTemplate с режимом ручного подтверждения:

Код: Выделить всё

@Configuration
public class AwsServicesConfig {

@Bean
public SqsTemplate customSqsTemplate(SqsAsyncClient sqsAsyncClient) {
return SqsTemplate.builder()
.sqsAsyncClient(sqsAsyncClient)
.configure(options -> options
// NOTE: manual ACK mode
.acknowledgementMode(TemplateAcknowledgementMode.MANUAL)
).build();
}
}
Логика @Component примерно такая:

Код: Выделить всё

  public List processMessages() {
var processedMessages = new ArrayList();

var messages = customSqsTemplate.receiveMany(from -> from.queue("my-queue")
.maxNumberOfMessages(10),
String.class
);

while (!messages.isEmpty()) {
messages.forEach(message -> {

doProcess(message);
processedMessages.add(message);

// HERE I want to send an ack to the source queue

});

messages = sqsTemplate.receiveMany(from ->
from.queue(mcSendProperties.getSqs().getDlqUrl())
.maxNumberOfMessages(MAX_NUMBER_OF_MESSAGES),
String.class
);
}
return processedMessages;
}
Я не нашел в объекте SqsTemplate метода для отправки подтверждения. Я проверил тесты в репозитории проекта на GitHub, но там написано только, что подтверждение не будет отправляться автоматически:
https://github.com/awspring/spring-clou ... in/spring- cloud-aws-sqs/src/test/java/io/awspring/cloud/sqs/operations/SqsTemplateTests.java#L770

Подробнее здесь: https://stackoverflow.com/questions/778 ... ent-how-to
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»