我知道有一种方法,以确定在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