Java 驼峰:在处理完成后停止计时器路由

Java 驼峰:在处理完成后停止计时器路由,java,apache-camel,Java,Apache Camel,我使用带有“repeatCount=1”的“timer”组件动态添加路由来添加路由。我需要在这条路线完成此运行后停止它 from("timer://" + host + "-Compressor?delay=10000&repeatCount=1") .process(.....) .to("mock:test"); 这里,host是动态添加路由时使用的变量。需要停止路由,以便在需要时再次生成路由。我不能做的是如何知道路由是否没有挂起的消息。对于GenericFileConsu

我使用带有“repeatCount=1”的“timer”组件动态添加路由来添加路由。我需要在这条路线完成此运行后停止它

from("timer://" + host + "-Compressor?delay=10000&repeatCount=1")
    .process(.....)
.to("mock:test");
这里,host是动态添加路由时使用的变量。需要停止路由,以便在需要时再次生成路由。我不能做的是如何知道路由是否没有挂起的消息。对于GenericFileConsumer,有一个方法“getPendingExchangeSize()”。但我没有得到任何类似的组件


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

请参阅controlbus eip模式。可以路由到端点以停止路由

您可能希望使用“async=true”来执行此操作,因为您将停止当前正在路由的路由,这在同步模式下无法正常工作,因为Camel将尝试在优雅地停止之前完成路由的机上消息