Java camel使用控制总线暂停路由
我有驼峰路线,它在异常情况下使用控制总线暂停路线Java camel使用控制总线暂停路由,java,apache-camel,Java,Apache Camel,我有驼峰路线,它在异常情况下使用控制总线暂停路线 onException(Exception.class).maximumRedeliveries(1).onRedeliveryRef("controlBusProcessor"); from("quartz2://myGroup/myTimerName?trigger.repeatInterval=2000&trigger.repeatCount=0") .routeId("myRoute")
onException(Exception.class).maximumRedeliveries(1).onRedeliveryRef("controlBusProcessor");
from("quartz2://myGroup/myTimerName?trigger.repeatInterval=2000&trigger.repeatCount=0")
.routeId("myRoute")
.process(simpleProcessor)
.to("stream:out")
路由最初调用一个引发异常的简单处理器,onException
有一个redeliveryRef
,它调用一个暂停路由的控制总线处理器,但它仍然调用简单处理器来重新传递消息
如果路由被挂起,为什么仍调用simple processor,它不应该等到路由恢复吗?我怀疑重新交付是在.process(simpleProcessor
)的故障点开始的。但是,如果您只想挂起路由,为什么不将.onException(Exception.class).to(“controlBusProcessor”)
添加到(“controlBusProcessor”)
否,路由将在挂起之前完成其飞行中的消息。在自定义重新交付处理器中,您可以通过使用exchange.stop=true
设置exchange上的属性,将exchange标记为停止继续路由
请参见停止处理器如何执行此操作: