当前位置: 首页 > 知识库问答 >
问题:

...NetCore Azure Servicebus获取当前消息计数

苏华荣
2023-03-14

从Queue获取计数的旧方法是这样的:

 CloudQueue q = queueClient.GetQueueReference(QUEUE_NAME);
            q.FetchAttributes();
            qCnt = q.ApproximateMessageCount;

这不再适用于. netCore和AMQP 1.0

我没有找到一个好的方法来获得消息计数。知道我错过了什么吗?

共有1个答案

燕翼
2023-03-14

有一个微软。蔚蓝色的经营ServiceBus库是预览版本,100%兼容。Netcore。我们可以在这里得到更多细节。

准备工作:

注册表Azure Active Directory应用程序和分配角色

步骤:

创建一个。net核心控制台项目,并添加以下代码。

 var tenantId = "tenantid";
            var context = new AuthenticationContext($"https://login.windows.net/{tenantId}");
            var clientId = "Client";
            var clientSecret = "Secret";
            var subscriptionId = "subscriptionId";
            var result =  context.AcquireTokenAsync(
                "https://management.core.windows.net/",
                new ClientCredential(clientId, clientSecret)).Result;

            var creds = new TokenCredentials(result.AccessToken);
            var sbClient = new ServiceBusManagementClient(creds)
            {
                SubscriptionId = subscriptionId
            };
            var queueParams = new QueueCreateOrUpdateParameters()
            {
                Location = "East Asia",
                EnablePartitioning = true
            };
           
            var queue = sbClient.Queues.ListAll("groupname", "namespace").ToList().FirstOrDefault(x => x.Name.Equals("queuename")); 
            var messagecount = queue.MessageCount;

从Azure porate2中,我们检查队列中的消息

项目json文件:

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true
  },

  "dependencies": {
    "Microsoft.Azure.Management.ServiceBus": "0.2.0-preview",
    "Microsoft.IdentityModel.Clients.ActiveDirectory": "3.13.9",
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.1"
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": "dnxcore50"
    }
  }
}
 类似资料:
  • 我对SQS非常陌生,如果我忽略了一些显而易见的事情,我很抱歉,但是有没有办法获取SQS中消息的当前可见性超时?我可以在这里看到如何更新超时可见性。但是我没有看到任何关于获取消息当前可见性超时的信息(也许你可以在收到消息时查看)。 我的用例是根据给定消息的当前可见性超时更改可见性超时。这可能吗? (注意:我知道我可以使用近似的接收时间来达到类似的效果,如果不可能获得当前可见性时间,我会走那条路)

  • 主要内容:1 什么是Java currentThread()方法,2 Java currentThread()方法的语法,3 Java currentThread()方法的例子1 什么是Java currentThread()方法 Java currentThread() 方法返回当前正在执行的线程的引用。 2 Java currentThread()方法的语法 3 Java currentThread()方法的例子 输出结果为:  

  • sp_get_current_user() 功能: 获取当前登录用户信息,包括users表里详细信息; 参数: 无 返回: 数组,用户包括users表里详细信息

  • 本文向大家介绍使用Java获取当前时间信息,包括了使用Java获取当前时间信息的使用技巧和注意事项,需要的朋友参考一下 导入以下程序包以与Java中的Calendar类一起使用, 现在创建一个日历类。 要显示整个时间信息,请使用以下字段。 以下是最后一个示例。 示例 输出结果