gpt4 book ai didi

java - 如何在失败时重新安排 Apache Camel Quartz (CronScheduledRoutePolicy) 端点路由

转载 作者:行者123 更新时间:2023-12-01 18:38:20 26 4
gpt4 key购买 nike

这是我用于数据处理的调度程序(CronScheduledRoutePolicy)。

    <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&amp;jmsMessageType=Text" />
</onException>
</route>

它每天上午 12.01 运行,问题是如果发生任何错误如何使用时间表 id 或路线 id 手动重新运行或重新安排。

谢谢。

最佳答案

好吧,既然你已经澄清了你的问题,你需要两种方法来进行数据处理:首先通过 cron 计划,然后手动。

我建议你将其分成 3 个路由(这显然是 java DSL,但你可以轻松地将其转换为 xml)。

  1. 第一条路线是 quartz 时间表 - 它调用处理路线。

    from("quartz://schedule?cron=0+1+0+*+*+?+*")
    .to("direct:doProcessing")
    ;
  2. 第二条路由进行处理

    from("direct:doProcessing")
    // do awesome stuff here...
    ;
  3. 第三条路线是手动重启

    from("timer://manualRestart?repeatCount=1")
    .routeId("manualRestart")
    .noAutoStartup()
    .to("direct:doProcessing")
    ;

现在,您可以使用命令行上的 route-start 命令或通过 fmc 等工具启动 ID 为“manualRestart”的路线。

希望这有帮助。

关于java - 如何在失败时重新安排 Apache Camel Quartz (CronScheduledRoutePolicy) 端点路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20876951/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com