java如何在失败时重新调度Apache Camel Quartz(CronScheduledOutPolicy)端点路由
这是我的数据处理计划(cronscheduledrutepolicy)
<route>
<from uri="quartz://schedule?cron=0+1+0+*+*+?+*"/>
<bean ref="processData" method="scheduleData" />
<convertBodyTo type="java.util.List" />
<to uri="activemq:queue:DATA.GENERATEDLIST?mapJmsMessage=false" />
<onException>
<exception>java.lang.Exception</exception>
<to uri="activemq:queue:DATA.ERROR.MESSAGES?mapJmsMessage=false&jmsMessageType=Text" />
</onException>
</route>
它每天早上12点01分运行,问题是如果出现任何错误,如何使用计划id或路线id手动重新运行或重新计划
谢谢
# 1 楼答案
好的,既然你已经澄清了你的问题,你需要两种方法来处理你的数据:首先通过cron计划,然后手动
我建议您将其分为3条路径(这显然是JavaDSL,但您可以轻松地将其转换为xml)
第一个路由是quartz调度-它调用处理路由
第二条路线进行处理
第三种方法是手动重启
现在,您可以使用命令行上的
route-start
命令或类似于fmc
的工具启动id为“manualRestart”的路由希望这有帮助
# 2 楼答案
如果遇到异常,可以使用re-delivery policy重新尝试exchange N次