c#activeMQ队列侦听器仅用于具有特定属性的消息

c#activeMQ队列侦听器仅用于具有特定属性的消息,c#,activemq,C#,Activemq,我需要设置一个解决方案,通过ActiveMQ NMS使用消息,限制只接收队列消息,该消息包含JMS头中指定属性(自定义属性)中的特定值。实际的解决方案使用简单的consumer.Listener+=。。。事件但是如果我对听众的理解是正确的,那么这样的话,信息也会被消耗掉。 如果我使用浏览器,我必须自己进行轮询,我需要为此设置一个循环 是否有一种方法可以在到达队列的每一条消息上获得通知,而不必使用它。但是查看JMS头并决定是否使用 背景是来自不同版本的数据生成器的所有消息将把这些数据放在同一队列中

我需要设置一个解决方案,通过ActiveMQ NMS使用消息,限制只接收队列消息,该消息包含JMS头中指定属性(自定义属性)中的特定值。实际的解决方案使用简单的consumer.Listener+=。。。事件但是如果我对听众的理解是正确的,那么这样的话,信息也会被消耗掉。 如果我使用浏览器,我必须自己进行轮询,我需要为此设置一个循环

是否有一种方法可以在到达队列的每一条消息上获得通知,而不必使用它。但是查看JMS头并决定是否使用

背景是来自不同版本的数据生成器的所有消息将把这些数据放在同一队列中,并且根据JMS头中的某些字段,它们应该有不同的使用者。没有改变这一点的选项(来自业务的限制)


我希望你能帮助我。

听起来你想订阅一个。您可以在使用者创建期间传入选择器,使用者将只接收符合选择器条件的消息。如果不进一步细分您的问题域,这是最好的建议。

我不熟悉ActiveMQ,但大多数MQ框架提供了在队列中的消息达到峰值的功能,这不会将它们从队列中删除。这是您的一个选项吗?如果我正确理解Peak,则需要从循环中的代码调用它。我的问题是我不想每x秒做一次民意调查。我喜欢使用基于事件的侦听器系统。如果消息到达,我会得到通知,而不是轮询并询问服务器消息。因为在几个小时后,队列可能会变大,而不是轮询/brw通过所有消息将不太好。