繁体   English   中英

骆驼:处理完成后停止计时器路线

[英]Camel: Stop a timer route after the processing is complete

我使用带有“ repeatCount = 1”的“计时器”组件动态添加路由以添加路由。 完成此运行后,我需要停止此路线。

from("timer://" + host + "-Compressor?delay=10000&repeatCount=1")
    .process(.....)
.to("mock:test");

在这里, host是在动态添加路由时使用的变量。 需要停止该路线,以便在需要时再次产生它。 无法做的是如何知道路由是否没有未决消息。 对于GenericFileConsumer,有一个方法“ getPendingExchangesSize()”。 但是我对此组件没有任何类似的东西。

此外,计时器组件仅用于启动路线,而无需任何外部仿真,并且可以选择仅运行一次。

请参见Controlbus eip模式。 您可以路由到端点以停止路由。

您可能要使用'async = true'来执行此操作,因为您将停止当前正在路由的路由,因此在同步模式下将无法正常工作,因为Camel会尝试在以优美的方式停止之前尝试完成路由的机上消息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM