0

是否可以在运行时更改路由策略?例如,如果我有下面的代码

CronScheduledRoutePolicy startPolicy = new CronScheduledRoutePolicy();
startPolicy.setRouteStartTime("* 0 * * * ?");
startPolicy.setRouteStopTime("* 30 * * * ?");
from("direct:foo").routeId("myRoute").routePolicy(startPolicy).autoStartup(false).to("does://not-matter");

我想在骆驼执行期间更改 cron 参数。在 JConsole 中,我可以访问返回的 getRoutePolicyList

CronScheduledRoutePolicy(0x6dc7efb5)

是否可以以某种方式访问​​ startPolicy对象并用新值重新实例化它?我是否用一些 getter 和 setter 扩展了骆驼的 mbean 类?

4

2 回答 2

0

不,不是开箱即用。但是,将 CronScheduledRoutePolicy 注册为 JMX MBean 将是一个不错的新功能,因此人们可以在运行时使用 JMX 对其进行调整。我已经记录了一张票:https ://issues.apache.org/jira/browse/CAMEL-6334

您可以做的是停止路线。然后调整startPolicy设置,然后再次启动路由。

有用于启动和停止路由的 JMX 操作。您可能需要公开一些 JMX 操作来调整 cron 策略。

于 2013-05-06T05:23:39.223 回答
0

我设法使用hawt.io做到了这一点。但要使其正常工作,您需要升级到 Camel 版本 2.13.0。

使用 hawt.io,您可以在运行时以非常用户友好的方式更改 cron 表达式。

于 2014-04-29T10:29:40.297 回答