【问题标题】:EasyNetQ.ManagementClient for to get msg rate per queueEasyNetQ.ManagementClient 用于获取每个队列的消息率
【发布时间】:2015-05-13 09:57:57
【问题描述】:

我正在使用 EasyNetQ.ManagementClient nuget 包来获取有关兔子的一些统计信息。在 Web 管理中,您可以看到每个队列的消息率

但是当使用 EasyNetQ.ManagementClient 时,我无法仅针对代码中的队列获得相同的费率,是否可以获得它们?

var managementClient = new ManagementClient("http://ipadress", "guest", "guest");
var overview = managementClient.GetOverview();
var publishRate = overview.MessageStats.PublishDetails.Rate; // this is for all queues together
var queues = managementClient.GetQueues();
foreach (var q in queues)
{ 
  // q doesn't have any rates properties
}

提前致谢

【问题讨论】:

  • 你有没有想过是否有内置的方法可以做到这一点?
  • @BigJoe714 不,我没有。我正在向 api 发送 http 请求。

标签: c# rabbitmq easynetq


【解决方案1】:

我还没有弄清楚这一点,但我决定使用 EasyNetQ.ManagementClient nuget 包我在 http://ipadress:15672/api/queues 上向 rabbit 的 api 发出 Web 请求,并返回 JSON 以响应我需要的所有信息。

【讨论】:

    【解决方案2】:

    当您提出问题时,它可能不存在于 API 中,但使用最新的 EasyNetQ.Management.Client,您现在可以查询每个队列的统计信息:

    ...
    foreach (var q in queues)
    { 
      Console.WriteLine($"Rate for {q.Name} is {q.MessagesDetails.Rate}");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-12
      • 1970-01-01
      • 2015-08-22
      • 1970-01-01
      • 2013-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多