【问题标题】:camel change route policy at runtime via jmx骆驼在运行时通过 jmx 更改路由策略
【发布时间】:2013-05-05 20:26:28
【问题描述】:

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

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 类?

【问题讨论】:

    标签: apache-camel jmx spring-jmx


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      使用 hawt.io,您可以以非常人性化的方式change cron expressions at runtime

      【讨论】:

        猜你喜欢
        • 2014-02-14
        • 1970-01-01
        • 1970-01-01
        • 2016-05-10
        • 1970-01-01
        • 1970-01-01
        • 2014-08-22
        • 2012-05-14
        • 1970-01-01
        相关资源
        最近更新 更多