EasyNetQ.ManagementClient用于获取每个队列的msg率

时间:2015-05-13 09:57:57

标签: c# rabbitmq easynetq

我使用EasyNetQ.ManagementClient nuget包来获取兔子的一些统计数据。在Web管理中,您可以看到每个队列的消息率enter image description here

但是,当使用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
}

提前致谢

2 个答案:

答案 0 :(得分:1)

我没有想到这一点,但是在使用OK nuget包时,我对EasyNetQ.ManagementClient的兔子api做了一个web请求,然后让JSON回复我需要的所有信息。< / p>

答案 1 :(得分:0)

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

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