我必须在消息被消费者消费之前浏览消息队列中的消息。(activemq
用作经纪人)
队列中有一些消费者在等待消息。
我必须浏览消息并使用该消息信息我必须执行一些工作,但问题是消息一进入队列就会被消耗。
有没有办法在消息进入队列时立即获得警报并确保在其他消费者实际消费消息之前浏览消息?
我必须在消息被消费者消费之前浏览消息队列中的消息。(activemq
用作经纪人)
队列中有一些消费者在等待消息。
我必须浏览消息并使用该消息信息我必须执行一些工作,但问题是消息一进入队列就会被消耗。
有没有办法在消息进入队列时立即获得警报并确保在其他消费者实际消费消息之前浏览消息?
您可以创建一个队列浏览器,可能使用消息选择器:
this.queueBrowser = getQueueSession().createBrowser(getQueue(),
selector);
选择器就像选择消息的“where 子句”。
更新
如果您有一个带有“普通”消费者的队列,并且您希望在真正的消费者消费消息之前浏览队列。如果真正的消费者先消费,您的浏览器将看不到该消息。那不可靠。
因此,您应该使用两个队列。您的浏览应用程序充当“中间人”或桥梁,它将始终将所有消息发布到第一个队列中,并且必须将其发送到第二个队列中。真正的消费者正在连接到第二个队列。所以两者都正常消费。
另一种可能性是更改发送者:它可以在两个队列上发送消息,一个用于真正的消费者,一个仅用于您的浏览应用程序。