7.7. JMS 样式的选择器 Red Hat build of Apache Camel for Spring Boot 3.14

您所在的位置:网站首页 mqtt启动 7.7. JMS 样式的选择器 Red Hat build of Apache Camel for Spring Boot 3.14

7.7. JMS 样式的选择器 Red Hat build of Apache Camel for Spring Boot 3.14

2023-03-13 19:48| 来源: 网络整理| 查看: 265

SQS 不允许选择器,但您可以使用 Camel Filter EIP 和设置适当的 visibilityTimeout 来有效地达到此目的。当 SQS 分配消息时,它将等待到可见性超时,然后尝试将消息发送到不同的消费者,除非收到 DeleteMessage。默认情况下,Camel 总是在路由末尾发送 DeleteMessage,除非路由以失败告终。要实现适当的过滤,而不在成功完成路由时发送 DeleteMessage,请使用 Filter:

from("aws2-sqs://MyQueue?amazonSQSClient=#client&defaultVisibilityTimeout=5000&deleteIfFiltered=false&deleteAfterRead=false") .filter("${header.login} == true") .setProperty(Sqs2Constants.SQS_DELETE_FILTERED, constant(true)) .to("mock:filter");

在上面的代码中,如果交换没有适当的标头,则不会通过过滤器 AND 使其没有从 SQS 队列中删除。在 5000 毫秒后,消息对其他消费者可见。

注意,我们必须将属性 Sqs2Constants.SQS_DELETE_FILTERED 设置为 true 以指示 Camel 发送 DeleteMessage (如果被过滤)。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3