首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >aggregator中所有待处理消息的完整程度,何时接收标头

aggregator中所有待处理消息的完整程度,何时接收标头
EN

Stack Overflow用户
提问于 2018-11-17 00:03:24
回答 1查看 140关注 0票数 0

我想创建一些类似于基于驼峰路由的“左外部连接”的东西。在我的项目中,我有两个路由,这两个路由使用来自2个数据库表的数据,并将其逐行发送到下一步(joinData)。这两个表有相同的主键,我想根据这个主键连接这两个表的数据。我的场景是:

代码语言:javascript
复制
 <route id="select1">
    //some code
    <to uri="direct:joinData"/>
 </route>

 <route id="select2">
    //some code
    <to uri="direct:joinData"/>
 </route>

 <route id="joinData">
   <from uri="direct:joinData"/>
   <aggregate strategyRef="joinStrategy" completionSize="2">
      <correlationExpression>
         <jsonpath>$.ID</jsonpath>
      <to uri="direct:result/>
   </aggregate>
</route>

当上次选择记录时,来自两个源的最后一封邮件包含设置为true的特殊标头/属性。有没有可能,当这个特殊的头到来时,或者更好的是,两个头都来了,如何完成在聚合器中等待的rest挂起消息,这些消息没有连接?因为,现在只将加入的消息发送到结果路由。我想完成所有未决的消息,当从数据库加载结束。

谢谢你的点子。

EN

回答 1

Stack Overflow用户

发布于 2018-11-17 00:58:10

只需添加一个completionPredicate来告诉Camel在哪种情况下聚合必须被认为是完整的(在您的示例中,是当您的特殊头/属性设置为true时)。您可以使用Camel Simple language来表达谓词。示例:

代码语言:javascript
复制
<aggregate strategyRef="myStrategy" eagerCheckCompletion="true">
        ...
        <completionPredicate>
          <simple>${body} contains 'STOP'</simple>
        </completionPredicate>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53341466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档