2013-05-05 63 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策略。