У меня есть маршрут, который имеет «to», статья. Я использовал блок catch try для перенаправления обмена на маршрут, если происходит какое-то исключение. Исключением, которое я имел, было связано с максимальным количеством параллельных подключений, разрешенных с клиентом. Кажется, когда исключение разрешено, каждая повторная попытка обмена обрабатывалась дальше, где она была оставлена. Как я могу закончить маршрут, который имел исключение.Apache Camel route end при использовании try catch
Следующий мой код.
from("direct:hourlyFeedParts")
.routeId("appnexus hourly downloader")
.doTry()
.process(AppNexusProcessor.getDownloadProcessor())
.process(AppNexusProcessor.getNamingProcessor())
.id("Appnexus Feed Downloader")
.log("Downloading file ${file:name}")
.to("{{appnexus.partsDestination}}")
.log("Downloaded file ${file:name} to local")
.doCatch(Exception.class)
.to("direct:hourlyFeedParts")
.end()
.bean(AppNexusProcessor.class, "updateIdempotentList")
.choice()
.when(simple("${property.CamelSplitComplete} == true"))
.split(beanExpression(AppNexusProcessor.class, "getAggregatorProcessor"))
.to("direct:S3PreProcessor")
.endChoice()
.end();
Я мышление может использовать endParent() после
.doCatch(Exception.class)
.to("direct:hourlyFeedParts")
.endParent()
Является ли это правильный подход. Я не мог понять точное использование endParent() из документации.
Спасибо. И изменится ли «.end()» на «endDoTry()»? –
Извините, я допустил ошибку. Как я уже сказал, блок catch должен быть завершен с помощью .stop() –
Да, я получил это. Используется «стоп». –