Java 骆驼运行时计时器更改
我有一个关于骆驼和计时器的问题。我有几个计时器,其中一个我想在运行时更新。我使用OSGiBlueprint来配置适当的时段。Java 骆驼运行时计时器更改,java,apache-camel,apache-servicemix,Java,Apache Camel,Apache Servicemix,我有一个关于骆驼和计时器的问题。我有几个计时器,其中一个我想在运行时更新。我使用OSGiBlueprint来配置适当的时段。 那么我如何更改计时器(使用我知道的名称),例如从route?您可以向实现org.apache.camel.CamelContextAware的route添加一个bean。Camel将在启动时注入对上下文的引用。使用上下文,您可以获取计时器/石英端点的引用并更新其配置 我不知道的是,这是否足以让触发器根据新的periods/cron表达式重新调度。可能您必须将端点强制转换为
那么我如何更改计时器(使用我知道的名称),例如从route?您可以向实现org.apache.camel.CamelContextAware的route添加一个bean。Camel将在启动时注入对上下文的引用。使用上下文,您可以获取计时器/石英端点的引用并更新其配置
我不知道的是,这是否足以让触发器根据新的periods/cron表达式重新调度。可能您必须将端点强制转换为TimerEndpoint并直接使用它,例如,根据新计划设置新的计时器实例。计时器不允许在运行时更改,您需要停止路由,更新路由上的计时器端点,然后重新启动路由 尽管Ralf提到的内容可能会有所帮助,因为这允许您从bean访问CamelContext,您可以在bean中控制路由的生命周期 但也可以参见控制总线EIP,了解这些内容