Задержка запуска маршрута Apache Camel, если исключение произошло во время последней обработки - PullRequest
0 голосов
/ 27 ноября 2018

Есть ли в Apache Camel какой-либо встроенный механизм для отсрочки следующего времени запуска маршрута при возникновении исключения во время обработки последнего маршрута?

Например, если у меня есть маршрут:

  • запуск каждые 5 секунд
  • выборка данных из базы данных
  • обработка данных и создание сообщения
  • отправка сообщения на удаленный экземпляр ActiveMQ

Я хочу иметь возможность обрабатывать этот сценарий:

Если база данных или ActiveMQ выйдет из строя (обслуживание или некоторые проблемы с сетью), вызывая исключения во время обработки маршрута, я хочу временноЗадержка в следующий раз, когда будет запущен маршрут (например, подождите 5 минут, прежде чем запускать снова, что даст некоторое время для перезапуска базы данных \ activemq) и переключитесь обратно на 5 секунд запуска, когда маршрут обрабатывается без исключений снова.Или даже постепенно увеличивайте время ожидания следующего запуска при каждой неудачной попытке обработки без сбоев (1 минута / 5 минут / 10 минут) и переключайтесь на значение по умолчанию, равное 5 секундам, когда все в порядке.

Я могу построить свой собственныйВременное решение с использованием процессоров, обработчиков onException, некоторого массива для запоминания текущего состояния задержки на идентификатор маршрута и choice() предикатов, которые пропускают весь маршрут, если он задерживается, но, возможно, в Apache Camel * 1024 есть некоторый встроенный механизм* как это звучит как обычный сценарий использования?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...