如何获取Azure Service Bus队列中的死信消息计数?

如何获取Azure Service Bus队列中的死信消息计数?

问题描述:

如何获取Azure Service Bus队列中的死信消息计数?

How do you get the count of dead letter messages in an Azure Service Bus queue?

我可以像这样获得队列中的计数...

I can get the count in the queue like so ...

var ns = NamespaceManager.CreateFromConnectionString(sbConnectionString);
var queue = ns.GetQueue(queueName);
var count = queue.MessageCount;

但这看起来既包括队列中的消息,也包括相关的死信队列中的消息

But this looks to include both messages in the queue, and also messages in the associated dead letter queue

如何区分它们?

请查看 QueueDescription .您将找到 DeadletterMessageCount 在那里将为您提供所需的信息.

Do take a look at MessageCountDetails property in QueueDescription. You will find DeadletterMessageCount there which will provide you the information you're looking for.

var ns = NamespaceManager.CreateFromConnectionString(sbConnectionString);
var queue = ns.GetQueue(queueName);
var count = queue.MessageCount;
var deadletterMessagesCount = queue.MessageCountDetails.DeadletterMessageCount;