在上一个之后调用路线在骆驼环境中完成

时间:2018-04-17 15:50:14

标签: apache-camel

我正在使用blueprint编写一个camel应用程序。我有两个路由调用相同的类bean但是针对不同的情况(在类中基于路由id处理)。我想只在第一个路由完成时启动第二个路由它的执行(顺序而不是并行)。所以有任何办法可以做同样的事情。以下是我的代码 -

<camelContext id="test"
        xmlns="http://camel.apache.org/schema/blueprint">
    <route id="1">
        <from uri="timer"/>
        <to uri="bean:test"/>
    </route>
    <route id="2">
       <from uri="timer"/>
       <to uri="bean:test"/>  
    </route>
</camelContext>

由于

1 个答案:

答案 0 :(得分:1)

引导驼峰上下文时启动路由。您可能正在寻找在“route1”处理后将路由到“route2”的交换

这听起来像是同一条路线。在实现不同的行为时,您有一些选项可以重用bean。最简单的IMO就是使用不同的方法:

class TestBean {
    void test1(){}
    void test2(){}
}

然后更改您的路线配置:

<route id="1">
    <from uri="timer"/>
    <to uri="bean:test?method=test1"/>
    <to uri="bean:test?method=test2"/>  
</route>

当然你可以改变这些是不同的豆...