2016-03-11 5 views
0

Я установки верблюд маршрутизации с политикой ErrorHandler и Redelivery сконфигурировано, как показано нижеCamel useExponentialBackoff не работает правильно

<errorHandler id="apiRetryHandler" type="DefaultErrorHandler"> 
<redeliveryPolicy maximumRedeliveries="5" redeliveryDelay="30000" 
backOffMultiplier="5" useExponentialBackOff="true" 
useCollisionAvoidance="true"/><errorHandler> 

Я ожидаю следующий результат

  • Сообщение 1 -> Actual сообщение
  • Сообщение 2 -> 1-й повтор = 30 секунд
  • Сообщение 3 -> 2-й повтор (30 [redeliveryDelay] x 5 [backoffMultipler]) = 2.5 мин
  • Сообщение 4 -> 3-повторов (2,5 мин (предыдущие) х 5 [backoffMultipler]) = 12,5 мин

На первой неудачи, когда я получаю исключение из системы, обработчик ударов на следующий порядок

  • первой Retry - 30 секунд
  • второй Retry - 1 мин
  • третьего Retry - 1 мин ...
  • шестых Retry - 1 min

Прошу совета, что я делаю неправильно здесь.

ответ

1

Существует максимальная задержка пересылки на 60 секунд [1]. Вам нужно установить его на более высокое значение. Также не рекомендуется использовать длинные задержки, например, 12,5 минут - это очень долгое время.

<errorHandler id="apiRetryHandler" type="DefaultErrorHandler"> 
<redeliveryPolicy maximumRedeliveryDelay="30min" maximumRedeliveries="5" redeliveryDelay="30sec" 
backOffMultiplier="5" useExponentialBackOff="true" 
useCollisionAvoidance="true"/><errorHandler>