JMS отправляет то же сообщение обратно в SQS - PullRequest
0 голосов
/ 13 апреля 2020

Я работаю над подходом, при котором мне необходимо отправить сообщение обратно в 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;
        }
    });
}

Есть ли что-нибудь, что я могу установить / использовать, чтобы убедиться, что сообщение не обрабатывается как новое сообщение и поддерживается приблизительный счет приема?

...