ActiveMQ(NMS):是否可以在队列上运行查询以找出具有某些标头值的所有消息?

时间:2018-12-18 10:12:01

标签: activemq nms

我正在使用ActiveMQ存储消息以供以后使用。它正在按预期方式工作,但是我需要适应一种无法解决的特定情况。 简短的问题是这个。

  

是否可以在队列上运行查询以找出具有某些标头值的所有消息?

详细的问题是:

因此,有一组数据要包含在多个消息中,并且要求仅在所有消息都已传入之后才使用该数据。 因此,如果数据集有50条消息,那么我需要等待这50条消息,然后再读入。 我在每个消息中添加标头,以表示它们属于某个集合。 像“ TotalSets” = 50一样,“ SetId” = 39。 我想编写一个线程,该线程在特定批处理的所有集合都到达时会继续跟踪。

1 个答案:

答案 0 :(得分:1)

NMS是一个与JMS消息传递API等效的.NET,因此过滤消息的方式与JMS中的相同,您的订阅在创建时将应用JMS Message Selector来告诉代理它对什么消息感兴趣。创建MessageConsumer实例的session方法具有一些变体,这些变体使用JMS定义的语法接受选择器,这是过滤消息的方法。