2017-08-08 209 views
0

我在單個駱駝包中部署了多條路由,我試圖實現的是一旦單個路由開始執行,其他路由不應該被執行,直到開始的路由是完成執行。同步駱駝路由

我明白,可以讓包含我的路線的整個camelContext成爲單線程,但在性能方面我看到了一個缺點。

有人有類似的用例和最好的解決方法是什麼?由於我使用OSGi Blueprint DSL,因此歡迎任何示例。

回答

0

如果您需要選擇性地控制其他路線,例如啓動和停止它們,您可以使用駱駝的Control Bus

首先,您需要阻止您希望在啓動應用程序時執行的路線。這是用的自動啓動實現了=你的路由定義錯誤:

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

你還可以:

<route id="foo" autoStartup="false"> 
    <from uri="activemq:queue:special"/> 
    <to uri="file://backup"/> 
</route> 
在想要做的東西,只是之後開始另一條路線在您的行駛路徑點

然後訂購路線的啓動(和關閉),在Camel documentation here中解釋。