AWS чтение SQS - запрос транзакции в java - PullRequest
0 голосов
/ 04 августа 2020

После прочтения сообщения из sqs сообщение перемещается в полет. Если транзакция не удалась или произошел сбой, я не смог найти вариант, чтобы прочитать ее снова. Есть ли способ переместить неудавшиеся сообщения из полета обратно в основную очередь, чтобы я мог снова прочитать это сообщение? Есть ли вариант транзакции? В основном я хочу, чтобы он пытался бесконечно, если обработка сообщения не удалась (у меня есть веская причина для этого).

List<Message> messages = sqs.receiveMessage( receiveMessageRequest ).getMessages();

...

exchange.getIn().setBody( message.getBody() );
getProcessor().process( exchange );
            
if ( exchange.getException() == null ) 
{
    deleteMessageResult = sqs.deleteMessage( queueName, message.getReceiptHandle() );
    LOGGER.debug( "Delete http status code: {}", deleteMessageResult.getSdkHttpMetadata().getHttpStatusCode() );
}
else
{ 
    //??? 
}

pom file

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-sqs</artifactId>
    <version>1.11.812</version>
</dependency>
...