【问题标题】:Azure service bus subscription metricsAzure 服务总线订阅指标
【发布时间】:2021-07-16 10:04:58
【问题描述】:

我正在尝试找到查看通过 c#(SDK 或其他方式)访问主题中订阅的最后日期的最佳方法,即如果在 x 小时内未访问,则清除队列。我知道服务总线资源管理器中内置了该功能,但找不到任何 SDK 功能。如果有人能指出我正确的方向,将不胜感激。

【问题讨论】:

  • 有许多可用的服务总线 SDK。你能告诉你使用的是哪个SDK吗?
  • 目前只使用我通过 Nuget 下载的 Microsoft.ServiceBus 库。让它使用下面的代码创建与相关订阅的连接,这很有效。 ` _subscriptionClient = SubscriptionClient.CreateFromConnectionString(ConnString, topic, subscriptionNameLegal);` 但 _subscriptionClient 类无权访问这些功能,例如清除甚至指标。
  • 抱歉,WindowsAzure.ServiceBus 版本为 6.0.0。 (出于某种原因,在我的参考文献中出现了 Microsoft.ServiceBus)
  • Does the SDK above give the functionality to check when a sub was last accessed? - 是的。请检查我的答案。 HTH。

标签: c# sdk azureservicebus


【解决方案1】:

请看下面的代码。它使用Azure.Messaging.ServiceBus SDK。您感兴趣的属性在SubscriptionRuntimeProperties 类中可用。

using System;
using System.Threading.Tasks;
using Azure.Messaging.ServiceBus.Administration;

namespace ConsoleApp1
{
    
    class Program
    {
        static async Task Main(string[] args)
        {
            string connectionString =
                "connection-string";
            string topicName = "topic-name";
            string subscriptionName = "subscription-name";
            ServiceBusAdministrationClient administrationClient = new ServiceBusAdministrationClient(connectionString);
            var result = await administrationClient.GetSubscriptionRuntimePropertiesAsync(topicName, subscriptionName);
            Console.WriteLine(result.Value.AccessedAt.ToString("yyyy-MM-ddTHH:mm:ss"));
        }
    }
}

【讨论】:

  • 是的,一切都很好,非常感谢您的帮助!已接受此答案 + 已投票
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-23
  • 2018-08-27
  • 2016-02-10
  • 2021-09-23
  • 2016-12-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多