Apache Camel 中是否有任何内置机制可以在上次路由处理期间发生异常时延迟路由的下一次触发时间?
例如,如果我有一条路线:
我希望能够处理这种情况:
如果数据库或ActiveMQ会宕机(维护或一些网络问题),导致路由处理过程中抛出异常,我想暂时延迟下次触发路由(例如等待5分钟再触发,给一些时间重新启动数据库\activemq) 并切换回 5 秒触发,当路由再次处理无异常时。或者甚至在每次失败的处理尝试中逐渐增加下一次触发的等待时间,没有失败(1 分钟/5 分钟/10 分钟),并在一切正常时切换回 5 秒的默认值。
我可以使用处理器、onException处理程序、一些数组来构建我自己的解决方法,以记住每个 routeId 的当前延迟状态以及choice()如果延迟则跳过整个路由运行的谓词,但也许Apache Camel 中有一些内置机制,因为它听起来像通常的用例场景?
| 归档时间: |
|
| 查看次数: |
294 次 |
| 最近记录: |