我正在尝试使用c#获取activeMQ队列中的当前消息数。
我找到了这个链接(现在已经很老了) ActiveMQ with C# and Apache NMS - Count messages in queue 但是枚举队列对于这个简单的任务似乎很有用。
这是获取队列消息计数的唯一方法吗?如果我确实使用这种方法,那么在我枚举时队列被锁定(我不想阻止其他读者)?
谢谢, 尼克
答案 0 :(得分:2)
您可以执行其他答案中描述的枚举事项,但在许多情况下您无法获得正确的答案,或者您可以使用statistics broker plugin并查询代理中的数据。
使用统计信息插件,您可以向控制队列发送消息,并在您提供的replyTo目标上侦听响应并获取目标的完整统计信息,需要注意的是您需要解析数据但不应该& #39;那很难。
枚举方法不会锁定队列,但它不会按照您想要的方式工作,因为代理在进入深度队列之前进入深度队列的深度有限制QueueBrowser因此您无法确定您的计数是否正确。同样使用统计插件会减少代理开销和网络流量,因为代理只需向您发送一个响应,其中包含数据,只是为了计算而发送所有消息。