在新的NET Standard Microsoft.Azure.ServiceBus中,NamespaceManager.GetQueue.MessageCount的等效方法是什么?

8

在新的NET标准Microsoft.Azure.ServiceBus中,NamespaceManager的等效物是什么?

我使用过WindowsAzure.ServiceBus来完成类似于计算队列中消息数量的任务...

var namespaceManager = NamespaceManager.CreateFromConnectionString(SbConnectionString);
var count = namespaceManager.GetQueue(queueName).MessageCount;

转移到新的Microsoft.Azure.ServiceBus .NET Standard库,但是尽管它有QueueClient和TopicClient等类,但它没有任何NamespaceManager。

在新的.NET Standard库中如何进行消息计数?

4个回答

10

更新如下:

现在已经实现并可以在 Microsoft.Azure.ServiceBus.Management; 命名空间中使用。

NamespaceManager 现在被称为 ManagementClient,并且具有(大致)相同的可用终结点。

这是 类本身,它是将其合并到主存储库的拉取请求的一部分


2

无法做到。

新的API不支持读取消息计数。您需要使用Azure Monitor API来获取它们。

阅读《阅读Azure服务总线指标》了解原因以及如何使用Azure Monitor。


0
using Azure.Messaging.ServiceBus.Administration;

private readonly ServiceBusAdministrationClient _serviceBusAdministrationClient;

 _serviceBusAdministrationClient = new ServiceBusAdministrationClient(connectionString);

Response<QueueRuntimeProperties> queueRuntimePropertiesAsync = await _serviceBusAdministrationClient.GetQueueRuntimePropertiesAsync(name);

 ActiveMessageCount = queueRuntimeProperties.ActiveMessageCount,
                DeadLetterMessageCount = queueRuntimeProperties.DeadLetterMessageCount,
                ScheduledMessageCount = queueRuntimeProperties.ScheduledMessageCount,
                TotalMessageCount = queueRuntimeProperties.TotalMessageCount,


有没有不必授予服务总线命名空间管理权限的方法?使用serviceBusAdministrationClient会打开删除和创建操作。 - boff101

0

你可以读取队列消息计数:

var managementClient = new ManagementClient(connectionString);
(await managementClient.GetQueueRuntimeInfoAsync("name")).MessageCount;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接