2013-05-05 84 views
0

是否可以在运行时更改路由策略?举例来说,如果我有以下骆驼在运行时通过jmx更改路由策略

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我可以访问返回

CronScheduledRoutePolicy(0x6dc7efb5)的getRoutePolicyList

是否有可能以某种方式获得了startPolicy对象,并用新值重新实例呢?我是否用一些getter和setter扩展了骆驼的mbean类?

回答

0

不是开箱即用。但是,是的,将CronScheduledRoutePolicy注册为JMX MBean会是一个很好的新功能,所以人们可以在运行时使用JMX来调整它。 我已经登录了一张票:https://issues.apache.org/jira/browse/CAMEL-6334

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

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