Apache camel 正在同步驼峰路由

Apache camel 正在同步驼峰路由,apache-camel,Apache Camel,我在一个camel bundle中部署了多个路由,我试图实现的是,一旦一个路由开始执行,其他路由就不应该执行,直到启动的路由完成执行 我理解,可以将包含我的路由的整个上下文设置为单线程,但我认为在性能方面存在缺陷 有人有过类似的用例吗?解决这个问题的最佳方法是什么?由于我使用的是OSGi Blueprint DSL,因此欢迎使用任何示例。如果需要有选择地控制其他路由,例如启动和停止它们,可以使用Camel 首先,您需要防止在应用程序启动时执行所需的路由。这是通过路由定义中的autoStartup

我在一个camel bundle中部署了多个路由,我试图实现的是,一旦一个路由开始执行,其他路由就不应该执行,直到启动的路由完成执行

我理解,可以将包含我的路由的整个上下文设置为单线程,但我认为在性能方面存在缺陷

有人有过类似的用例吗?解决这个问题的最佳方法是什么?由于我使用的是OSGi Blueprint DSL,因此欢迎使用任何示例。

如果需要有选择地控制其他路由,例如启动和停止它们,可以使用Camel

首先,您需要防止在应用程序启动时执行所需的路由。这是通过路由定义中的autoStartup=false实现的:

<route id="foo" autoStartup="false">
   <from uri="activemq:queue:special"/>
   <to uri="file://backup"/>
</route>

然后,在跑步路线中的某一点上,你想在完成任务后开始另一条路线,只需:

<to uri="controlbus:route?routeId=foo&amp;action=start"/>

您还可以命令路由的启动(和关闭),如中所述