У меня есть клиентское приложение, которое читает из очереди, и в некоторых случаях я хочу избежать отката транзакции. , записывая сообщение в новую очередь вместо очереди недоставленных писем. Затем я хочу повторно обработать сообщение через 5 минут и повторить процесс в случае ошибки.
Теперь я читаю с помощью прослушивателя Jms
Код: Выделить всё
@JmsListener(destination = "${QueueName}")
public void readMessages(TextMessage msg) { ...
Как лучше всего реализовать синхронизированное чтение в в этом случае?
Заранее всем спасибо!
ОБНОВЛЕНИЕ
В IBM MQ версии 8+ есть функция «Задержка доставки», которая решает мою проблему.
Перед вызовом
JmsTemplate. send(...)
достаточно установить это значение
jmsTemplate.setDeliveryDelay(delay);
Удачи!
Подробнее здесь: https://stackoverflow.com/questions/701 ... t-consumed
Мобильная версия