Восстановление из очереди недоставленных писем
Я получаю все сообщения JMS из Queue1 все время и пытаюсь их обработать.
Если я попытался обработать 5 раз и откатился 5 раз, я хочу, чтобы ActiveMQ поместил сообщение в другую очередь на некоторое время (например, 5 минут).
Как я могу этого достичь?
1 ответ
Решение
Вы можете добавить пользовательское свойство к сообщению, например RESUBMIT_TIMES, и увеличивать его до 5. Читать это: JMS
если достигнуто значение 5, переместите его в очередь 5 минут, установив там другое свойство с текущей меткой времени. Например:
message.setStringProperty("TimeOfDispatch", LocalDate.now().toString("yyyy-MM-dd hh:MM:ss"));
Иметь еще одного потребителя в очереди 5 минут, чтобы проверить, прошло ли 5 минут (проверяя текущее время со временем из заголовка)