У меня возникли проблемы с определением способа задержки уровня сообщений в SpringAMQP. Я вызываю Webservice, если служба недоступна или если она генерирует некоторое исключение, я сохраняю все запросы в очередь RabbitMQ, и я продолжаю повторять вызов службы до тех пор, пока он не будет успешно выполнен. Если служба продолжает выдавать ошибку или ее недоступно, слушатель rabbitMQ продолжает цикл. (Значение Listener получает сообщение и выполняет служебный вызов, если какая-либо ошибка переупорядочивает сообщение)SpringAMQP delay
Я ограничил цикл до X часов с помощью MessagePostProcessor однако я хотел включить задержку на уровне сообщений и каждый раз, когда он пытается получить доступ к сервису. Например, 1-я попытка задержки 3000 мс и второе время 6000 мс, пока я не попробую х количество раз.
Было бы здорово, если бы вы предоставили несколько примеров.
Не могли бы вы предоставить мне некоторое представление об этом?
Ok. Выглядит интересно, но я нахожу это как накладные расходы, чтобы совершить полное путешествие к брокеру только для повторных попыток ... –
Да, но таким образом мы не теряем никаких сообщений, и повторение продолжается до тех пор, пока не пройдет x минут, а затем переместите сообщение на другая очередь. – sea
Мы также не теряем их с помощью Spring Retry, просто потому, что мы не признаем это на брокере. И да, мы можем отправить его в другую очередь. См. Документы, которые я указал в своем ответе. –