【问题标题】:Apache NMS Getting pending message countApache NMS 获取待处理消息计数
【发布时间】:2018-05-13 13:31:36
【问题描述】:

我正在尝试使用 c# 获取 activeMQ 队列上的当前消息数。

我找到了这个链接(现在已经很老了) ActiveMQ with C# and Apache NMS - Count messages in queue 但是对于这个简单的任务来说,枚举队列似乎需要做很多工作。

这是获取队列消息计数的唯一方法吗?如果我确实使用此方法,在我枚举时队列是否被锁定(我不想阻止其他读者)?

谢谢, 尼克

【问题讨论】:

    标签: c# activemq apache-nms


    【解决方案1】:

    您可以执行其他答案中描述的枚举操作,这在许多情况下不会为您提供正确答案,或者您可以使用statistics broker plugin 并从代理查询该数据。

    使用统计插件,您可以将消息发送到控制队列并监听您提供的 replyTo 目的地的响应并获取目的地的完整统计信息,但需要注意的是您需要解析数据但不应该这样做不要那么难。

    枚举方法不会锁定队列,但它不会按您希望的方式工作,因为代理在提供 QueueBrowser 时停止之前进入深度队列的深度有限制,因此您可以不确定你的计数是否正确。此外,使用统计插件还可以减少代理开销和网络流量,因为代理只需向您发送一个包含数据的响应,而不是仅仅为了计数而向您发送所有消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-02
      • 2020-08-22
      • 1970-01-01
      • 2015-07-10
      • 2019-06-02
      • 1970-01-01
      • 2015-12-13
      • 1970-01-01
      相关资源
      最近更新 更多