Apache Camel 中是否有内置机制可以在上次路由处理期间发生异常时延迟路由的下一次触发时间?
例如,如果我有一条路线:
我希望能够处理这种情况:
如果数据库或ActiveMQ将崩溃(维护或某些网络问题),导致在路由处理期间引发异常,我想暂时延迟下一次将触发路由(例如等待5分钟再触发一次,给一些时间)重新启动数据库\ activemq),并在路由再次正常处理时切换回5秒触发。甚至在每次尝试失败均无失败的情况下逐渐增加等待下一次触发的等待时间(1分钟/ 5分钟/ 10分钟),并在一切正常时切换回默认值5秒。
我可以使用处理器,onException
处理程序,一些数组来记住每个routeId的当前延迟状态来构建我自己的解决方法,并且choice()
可以断言如果延迟,整个路由将不运行,但是也许某些听起来像通常的用例场景的 Apache Camel 中内置的机制?