我使用“timer”组件动态添加路由,并使用“repeatCount = 1”添加路由。一旦完成此次运行,我需要停止这条路线。
from("timer://" + host + "-Compressor?delay=10000&repeatCount=1")
.process(.....)
.to("mock:test");
此处,主机是动态添加路由时使用的变量。需要停止路径,以便在需要时再次生成它。无法做的是如何知道路由是否没有待处理的消息。对于GenericFileConsumer,有一个方法“getPendingExchangesSize()”。但我没有得到任何类似的组件。
此外,定时器组件仅用于启动路径而无需任何外部模拟,并且可以选择仅运行一次。
答案 0 :(得分:2)
请参阅controlbus eip模式。您可以路由到端点以停止路由。
您可能希望使用' async = true'因为您将停止当前路由的路由,这在同步模式下无法正常工作,因为Camel将尝试在优雅方式停止之前完成路线的机上信息