如何获取Azure主题订阅的消息计数?

时间:2012-12-19 16:59:06

标签: azure azureservicebus

有没有办法获取Azure主题订阅的当前消息数?

我看到SubscriptionDescription类具有MessageCount属性,但此类似乎仅用于创建订阅。我没有看到为现有订阅检索SubscriptionDescription对象的方法。

2 个答案:

答案 0 :(得分:20)

我找到了我要找的东西:

var namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString);
var subscriptionDesc = namespaceManager.GetSubscription(topicPath, subscriptionName);
long messageCount = subscriptionDesc.MessageCount;

答案 1 :(得分:1)

当将.NET Framework库与命名空间Microsoft.ServiceBus.Messagingnuget package)一起使用时,可接受的答案。

对于具有命名空间Microsoft.Azure.ServiceBusnuget package)的.NET Standard库,以下代码可以解决问题:

var managementClient = new ManagementClient(connectionString);
var runTimeInfo = await managementClient.GetSubscriptionRuntimeInfoAsync(topicPath, subscriptionName); 
var messageCount = runTimeInfo.MessageCountDetails.ActiveMessageCount;

有关两个库之间差异的更多详细信息,请参见Microsoft.ServiceBus.Messaging vs Microsoft.Azure.ServiceBus