Filter 驼峰-要在每个exchange中删除第一封邮件吗
我有一些基本上总是想失去列表中的第一张记录的东西。它将始终是表单列表的一部分-我不关心“header”-它将始终是列表中的第一个元素,并且不希望将其发送到我的端点 [“标题”、“消息1”、“消息2”…] 理想情况下,我希望丢失交换中的第一条消息,并考虑为其构造正确的查询 类似(这不起作用-removeMessage不是驼峰选项)Filter 驼峰-要在每个exchange中删除第一封邮件吗,filter,message,exchange-server,apache-camel,Filter,Message,Exchange Server,Apache Camel,我有一些基本上总是想失去列表中的第一张记录的东西。它将始终是表单列表的一部分-我不关心“header”-它将始终是列表中的第一个元素,并且不希望将其发送到我的端点 [“标题”、“消息1”、“消息2”…] 理想情况下,我希望丢失交换中的第一条消息,并考虑为其构造正确的查询 类似(这不起作用-removeMessage不是驼峰选项) 我正在考虑创建一个过滤器,该过滤器基于exchange上的CamelSplitIndex属性进行删除,但此时已停止,我想知道“我这样做对吗?”正如您所说,这似乎是一个混
我正在考虑创建一个过滤器,该过滤器基于exchange上的CamelSplitIndex属性进行删除,但此时已停止,我想知道“我这样做对吗?”正如您所说,这似乎是一个混合了和EIP的好例子 像这样的东西可能是你需要的
from(A)
.split().body()
.filter().simple("${property.CamelSplitIndex} > 0")
.to(B);
有几种方法可以处理这个问题,但是如果您可以像这样使用基本的EIP,请不要过于复杂
您总是可以自由地插入一些Java,如果可以的话,就这样做。正如您所说的,这似乎是一个混合使用Java和EIP的好例子 像这样的东西可能是你需要的
from(A)
.split().body()
.filter().simple("${property.CamelSplitIndex} > 0")
.to(B);
有几种方法可以处理这个问题,但是如果您可以像这样使用基本的EIP,请不要过于复杂
你总是可以自由地插入一些Java,如果这能达到目的,就去做。我几乎按照我的建议去做,与其他人的建议类似,但没有使用简单的表达式语言,这(讽刺的是)对我来说似乎更简单 .split().body()
.filter(header(“CamelSplitIndex”).isNotEqual(0))我几乎按照我的建议做了,与另一个人的建议类似,但没有使用简单的表达式语言,这(讽刺的是)对我来说似乎更简单 .split().body()
.filter(header(“CamelSplitIndex”).isNotEqual(0))我认为这取决于列表的大小。如果列表相对较小,那么您的解决方案就可以了。如果列表很大,那么最好在拆分之前使用java删除列表的第一个元素。如果我是正确的,则必须将筛选器应用于列表中可能占用大量cpu的每个元素。很可能,但筛选器仅查看exchange属性,然后决定是否应传播该exchange。不能在那里做太多的工作。不确定简单语言消耗了多少cpu功率。我认为这取决于列表的大小。如果列表相对较小,那么您的解决方案就可以了。如果列表很大,那么最好在拆分之前使用java删除列表的第一个元素。如果我是正确的,则必须将筛选器应用于列表中可能占用大量cpu的每个元素。很可能,但筛选器仅查看exchange属性,然后决定是否应传播该exchange。不能在那里做太多的工作。不确定简单语言消耗了多少cpu功率
from(A)
.split().body()
.filter().simple("${property.CamelSplitIndex} > 0")
.to(B);