【发布时间】:2020-02-24 14:45:07
【问题描述】:
我是 Apache camel 的新手,我遇到了需要执行以下操作的情况
每当我收到特定类型的异常时,我需要再次重试完整的路由, 但是我在使用onException实现时面临循环错误处理异常和无限递归的问题。
下面是我的虚拟代码
from("direct:updateTheTask")
.to("direct:getWoTaskDetail")
.to("direct:getSoTaskDetail")
.to("direct:updateTaskDetail")
.to("direct:getSoTaskDetail")
.to("direct:getWoTaskDetail")
.to("direct:endRoute");
from("direct:updateTaskDetail").routeId("updateTaskDetail")
.bean(BEAN, Constants.SET_PARAMS)
.to("direct:restUpdate")
.to(getGetResponseBeanUrl(BEAN));
我调用了“direct:updateTheTask”路由,并且“direct:updateTaskDetail”在我的情况下给出了异常,当收到异常时我想从“direct:updateTheTask”再次重试维护/持久化数据交换。
如果“direct:updateTaskDetail”在此递归过程中没有抛出此类异常,则路由应正常完成。
我使用了以下 2 种方法,但似乎对我不起作用。
onException(TaskException.class)
.handled(true)
.maximumRedeliveries(-1)
.redeliveryDelay(20);
另一种方法是
onException(TaskException.class)
.handled(true)
.delay(20)
.to("direct:updateTheTroubleTicket");
【问题讨论】:
标签: java spring apache-camel spring-camel