ege*_*vin 9 azure azureservicebus
有没有办法获取Azure主题订阅的当前消息计数?
我看到SubscriptionDescription类具有MessageCount属性,但此类似乎仅用于创建订阅.我没有看到为现有订阅检索SubscriptionDescription对象的方法.
ege*_*vin 22
我找到了我要找的东西:
var namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString);
var subscriptionDesc = namespaceManager.GetSubscription(topicPath, subscriptionName);
long messageCount = subscriptionDesc.MessageCount;
Run Code Online (Sandbox Code Playgroud)
接受的答案适用于将 .NET Framework 库与命名空间Microsoft.ServiceBus.Messaging(nuget package)一起使用时。
Microsoft.Azure.ServiceBus对于具有命名空间(nuget package )的 .NET Standard 库,以下代码可以解决这个问题:
var managementClient = new ManagementClient(connectionString);
var runTimeInfo = await managementClient.GetSubscriptionRuntimeInfoAsync(topicPath, subscriptionName);
var messageCount = runTimeInfo.MessageCountDetails.ActiveMessageCount;
Run Code Online (Sandbox Code Playgroud)
有关两个库之间差异的更多详细信息,请参阅Microsoft.ServiceBus.Messaging 与 Microsoft.Azure.ServiceBus 。
随着.NET Standard 的退役, .NET 5+ 应用程序有了一个新的命名空间Azure.Messaging.ServiceBus(nuget 包)。对此包执行相同操作所需的代码是:
var client = new Azure.Messaging.ServiceBus.Administration.ServiceBusAdministrationClient("connetionString");
var runtimeProps = (await client.GetQueueRuntimePropertiesAsync("queueName")).Value;
var messageCount = runtimeProps.ActiveMessageCount;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4732 次 |
| 最近记录: |