Я работаю над подходом, при котором мне необходимо отправить сообщение обратно в SQS. Я не хочу, чтобы оно показывало go в качестве нового сообщения, поскольку оно будет сбрасывать параметр приблизительныйRecieveCount, который требуется для кода.
Обратите внимание, что Я не могу отправить NACK в очередь, так как я читаю его как пакет из 10 сообщений, в некоторых случаях я хочу вручную отправить его обратно для отдельного сообщения, а не как пакет .
Код, который я пытаюсь использовать
Я попытался установить JMSMessageId, но это невозможно в соответствии с документацией -
После того, как вы отправляя сообщения, Amazon SQS устанавливает следующие заголовки и свойства для каждого сообщения:
1. JMSMessageID
2. JMS_SQS_SequenceNumber (только для очередей FIFO)
Код, который я сейчас использую:
defaultJmsTemplate.send(destinationName, new MessageCreator() {
@Override
public Message createMessage(Session session) throws JMSException {
Message message = session.createTextMessage(errorMessage);
message.setJMSCorrelationID(transactionId);
if (destinationName.endsWith(".fifo")) {
message.setStringProperty("JMSXGroupID", property.getMessageGroup());
message.setStringProperty("JMS_SQS_DeduplicationId", java.util.UUID.randomUUID().toString());
}
return message;
}
});
}
Есть ли что-нибудь, что я могу установить / использовать, чтобы убедиться, что сообщение не обрабатывается как новое сообщение и поддерживается приблизительный счет приема?