Jef*_*ren 0 c# azureservicebus .net-core
我试图从 ASP.NET Core 2.0 控制台应用程序监视总队列深度和 DeadLetterMessages 队列深度。我看到过有关使用 NamespaceManager 类的参考,如下所示:
var ns = NamespaceManager.CreateFromConnectionString(sbConnectionString);
var queue = ns.GetQueue(queueName);
var count = queue.MessageCount;
var deadletterMessagesCount = queue.MessageCountDetails.DeadletterMessageCount;
Run Code Online (Sandbox Code Playgroud)
(摘自如何获取 Azure 服务总线队列中的死信消息计数?)
但NamespaceManager位于Microsoft.ServiceBus中,与ASP.NET Core不兼容。
关于如何获取消息计数有什么建议吗?
使用库Azure.Messaging.ServiceBus.Administration中的命名空间Azure.Messaging.ServiceBus。
设置一个新的管理客户端,如下所示:
var client = new ServiceBusAdministrationClient("connectionstring");
Run Code Online (Sandbox Code Playgroud)
然后获取消息计数/深度,如下所示:
var queuesRuntimeProperties = client.GetQueuesRuntimePropertiesAsync().AsPages();
await foreach (var queuePage in queuesRuntimeProperties)
{
foreach (Azure.Messaging.ServiceBus.Administration.QueueRuntimeProperties currentQueue in queuePage.Values)
{
dict.Add(currentQueue.Name, currentQueue.TotalMessageCount.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1206 次 |
| 最近记录: |