当前位置: 首页 > 知识库问答 >
问题:

Apache Camel路由到顺序进程

施景同
2023-03-14

我有两条路线:

此刻我有:

public class FirstRouteBuilder extends RouteBuilder {

    @Override
    public void configure() {
        from(myqueue)
            .process(exchange -> {
                // prepare ResultObject
                // add to camel context the second route that is initializated with resultObject
                SecondRouteBuilder secondRouteBuilder = new SecondRouteBuilder(resultObject);
                camelCtx.addRoutes(secondRouteBuilder);
                camelCtx.start();
            });
    }
}
public class SecondRouteBuilder extends RouteBuilder {

    public SecondRouteBuilder (ResultObject result){
        this.resultObject = result;
    }

    @Override
    public void configure() {
        from(waitingAFileFromDirectory)
            .process(exchange -> {
                // process the file using the resultObject
            })
            .to(resultQueue);
    }
}

共有1个答案

鲁泰宁
2023-03-14

用pollency和loopDoWhile将它们连接起来

  • pollenrice获取文件
  • loopdowhile控制文件获取行为
public class CombineRouteBuilder extends RouteBuilder {

    @Override
    public void configure() {
        from(myqueue)
            .process(exchange -> {
                // prepare ResultObject and save to exchange property
            })
            .loopDoWhile(simple(<boolean gate to control file obtain strategy>))
                .pollEnrich(AFileFromDirectory)    // get your file
                // maybe a process to control boolean gate of loopDoWhile
            .end() // end loop
            .process(exchange -> {
                // process the file using the resultObject from exchange property
            })
            .to(resultQueue);
    }
}
 类似资料:
  • 我们使用的实现以编程方式实现路由。我们有两个服务,它们应该在相同的路由路径上注册,如果另一个不存在,其中一个将作为后备。具有特定路径的首选路由是: 因此,当调用时,应该使用第一条路由,而当调用时,应该使用第二条路由。 问题是,即使是路线上的order属性似乎也不能解决这个问题;目前,我们发现没有可能设置这种路线的顺序/优先级。这是intender吗?

  • 问题内容: 我想了解express.js中的顺序优先级。例如,下面的代码 如果请求来自客户端localhost:3000 / api / abc和localhost:3000 / user / abc,则来自api和用户模块的响应。但是,如果我发出类似localhost:3000 / myName / xyz的请求,则应用程序模块将返回响应。此行为使我担心expressjs的优先顺序以及路由器模块

  • 问题内容: 我敢肯定这已经被问过了,但是我不知道确切地称呼它是什么来找到答案。 我有一个类别和子类别的表格。他们每个人都有一个ID和一个父母ID。如果是顶级类别,则父ID为0。子类别的父ID设置为其父ID。 我正在尝试编写一个SQL查询,该查询将按此顺序提供所有类别: A,a1,a2,a3,B,b1,b2,b3 这在SQL中是可能的,还是我需要使用多个查询 谢谢布拉德 问题答案: 这样的事情可能会

  • 考虑以下事项: 我有一个应用模板,一个HeaderTemboard,和参数化的路由集与相同的处理程序(在应用模板)。我希望在没有找到东西的时候能够服务404路线。例如, /CA/SanFrancisco应该由区域查找和处理,而 /SanFranciscoz应该是404。 下面是我如何快速测试路线的。 问题是 /SanFranciscoz总是由区域页面处理,但我希望它是404。此外,如果我向第一个路

  • 我的路线如下 我知道(A)处的JMS消费者将在每次轮询时分叉JMS事务,并附加到线程。(B)中的事务处理节点也将在交换到达那里并连接到线程后分叉JPA事务。 请在下面找到我的问题: > < li >能否将两个不同的事务附加到一个线程上(如上所示)? < li >如果是,哪一个应该被停职? < li> 上述路由的提交和回滚顺序应该是什么? 注:我没有从骆驼在行动第二版中找到任何明显的答案,所以请指导