如何读取基于消息头属性只有特定队列中的消息 [英] how to read only specific queue messages based on message header property
问题描述
我在ActiveMQ的队列中的邮件列表。每个消息有值自定义标题属性。我应该怎么只能访问其自定义页眉属性值这些消息= 123?
我使用类似下面接从队列中的消息。如何挑选所有的消息或具有customHeaderProperty = 123?
单个消息 ConsumerTemplate consumerTemplate = camelContext.createConsumerTemplate();
交易所前= consumerTemplate.receive(ActiveMQ的:QUEUENAME,10000);
字符串数据= ex.getIn()getBody(为String.class)。
。弦数= ex.getIn()getHeader(CustomProperty的,为String.class);
在消费者使用消息选择。一个选择是像查询SQL。所以,你可以写类似 myCustomHeader = 123
。这里是一个 pretty好的小抄。
由于您标记与Apache骆驼的问题,我猜你是一个骆驼的设置工作。在这种情况下,你需要选择提供给骆驼。类似从(ActiveMQ的:队列:myQueue中选择= myCustomHeader%3D123)
I have a list of messages in activemq queue. each message has a custom header property with value. How I should be able to access only those messages whose custom header property value = 123.?
I am using something like below to pick a message from queue. How to pick all messages which or a single message which has customHeaderProperty =123.?
ConsumerTemplate consumerTemplate = camelContext.createConsumerTemplate();
Exchange ex = consumerTemplate.receive("activemq:queueName",10000);
String data = ex.getIn().getBody(String.class);
String number = ex.getIn().getHeader("customProperty", String.class);
Use message selectors on the consumer. A selector is a SQL like query. So you could write something like myCustomHeader = 123
. Here is a pretty good cheat sheet.
Since you tagged the question with apache-camel, I guess you are working with a Camel setup. In that case, you need to supply the selector to Camel. Something like from("activemq:queue:myqueue?selector=myCustomHeader%3D123").
.
这篇关于如何读取基于消息头属性只有特定队列中的消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!