После прочтения сообщения из 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>