Восстановление из очереди недоставленных писем

Я получаю все сообщения 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 ​​минут (проверяя текущее время со временем из заголовка)

Другие вопросы по тегам