Apache camel 通过jmx在运行时更改路由策略

Apache camel 通过jmx在运行时更改路由策略,apache-camel,jmx,spring-jmx,Apache Camel,Jmx,Spring Jmx,是否可以在运行时更改路由策略?例如,如果我有下面的代码 CronScheduledRoutePolicy startPolicy = new CronScheduledRoutePolicy(); startPolicy.setRouteStartTime("* 0 * * * ?"); startPolicy.setRouteStopTime("* 30 * * * ?"); from("direct:foo").routeId("myRoute").routePolicy(startPoli

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

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中,我只能访问返回的getRoutePolicyList

CronScheduledOutPolicy(0x6dc7efb5)


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

否不是现成的。但是是的,将cronScheduledOutPolicy注册为JMX MBean将是一个很好的新特性,这样人们就可以在运行时使用JMX对其进行调整。 我已经登记了一张票:

你能做的就是停止这条路线。然后调整startPolicy设置,然后再次启动路由


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

我使用。但要使其工作,您需要升级到Camel版本2.13.0

使用hawt.io,您可以以一种非常用户友好的方式