是否可以在运行时更改路由策略?例如,如果我有以下代码
CronScheduledRoutePolicy startPolicy = new CronScheduledRoutePolicy();
startPolicy.setRouteStartTime("* 0 * * * ?");
startPolicy.setRouteStopTime("* 30 * * * ?");
from("direct:foo").routeId("myRoute").routePolicy(startPolicy).autoStartup(false).to("does://not-matter");
我想在camel执行期间更改cron参数。在JConsole中,我只能访问返回
的getRoutePolicyListCronScheduledRoutePolicy(0x6dc7efb5)
是否有可能以某种方式访问 startPolicy 对象并使用新值重新实例化它?我是否用一些吸气剂和制定者来扩展mbean类的骆驼?
答案 0 :(得分:0)
不,没有开箱即用。但是,将CronScheduledRoutePolicy注册为JMX MBean是一个很好的新功能,因此人们可以在运行时使用JMX进行调整。 我已经记录了一张票:https://issues.apache.org/jira/browse/CAMEL-6334
你可以做的是停止路线。然后调整startPolicy设置,然后再次启动路由。
有启动和停止路线的JMX操作。您可能需要的是公开一些JMX操作以调整cron策略。
答案 1 :(得分:0)
我设法使用hawt.io执行此操作。但为了实现这一点,您需要升级到Camel版本2.13.0。
使用hawt.io,您可以以非常用户友好的方式change cron expressions at runtime。