确定有多少消息是对Azure的服务总线队列(Determining how many message

2019-09-01 06:34发布

我知道有一种方法,以确定在Azure队列(Store帐户)消息(或近似数)的数量; 然而,有没有办法来查询上Azure的服务总线队列中等待消息的数量?

Answer 1:

var nsmgr = Microsoft.ServiceBus.NamespaceManager.CreateFromConnectionString(connectionString);
long count = nsmgr.GetQueue(queueName).MessageCount;


Answer 2:

这就是所谓的MessagesCountDetails.ActiveMessageCount。 它返回队列中的活动消息的数量。 你可能有一些死消息:

var msg = Microsoft.ServiceBus.NamespaceManager.CreateFromConnectionString(Settings.Default.ConnectionString);
numofmessages.Text = msg.GetQueue(QueueName).MessageCountDetails.ActiveMessageCount.ToString();


Answer 3:

你看了队列描述 API? 有一个叫做财产MessageCount

这里的.NET SDK参考文档页为好。



Answer 4:

我跑进试图从死信队列计数这个同样的问题。 它看起来像DeadLetterQueue中不允许你直接获得一个数,你从正常队列的MessageCountDetails得到它。

string connectionString = ConfigurationManager.AppSettings["Microsoft.ServiceBus.Connstr"].ToString();
NamespaceManager nsmgr = Microsoft.ServiceBus.NamespaceManager.CreateFromConnectionString(connectionString);
return nsmgr.GetQueue(QueueName).MessageCountDetails.DeadLetterMessageCount;


Answer 5:

这里的一个示例的PowerShell不断眼球队列长度为天青门户云壳牌使用

cd "Azure:\<MySubscription>\"
while (1) {(Get-AzureRmServiceBusQueue -ResourceGroup <myRG> -NamespaceName <myNS> -QueueName <myQueueName>).CountDetails | Select -expand ActiveMessageCount}


Answer 6:

Also..you可以检查Azure管理门户的未决消息......在仪表盘上的服务总线队列......下快速浏览......你可以看到队列长度...这是电流/待处理的邮件数量在仪表板页面加载的时间长度。



文章来源: Determining how many messages are on the Azure Service Bus Queue