Подтвердить что ты не робот

Определение количества сообщений в очереди служебной шины Azure

Я знаю, что есть способ определить количество сообщений (или приблизительное число) в Azure Queue (Store Account); однако есть ли способ запросить количество ожидающих сообщений в очереди Azure Service Bus?

4b9b3361

Ответ 1

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

Ответ 2

Он называется MessageCountDetails.ActiveMessageCount. Он возвращает количество активных сообщений в очереди. Вероятно, у вас есть сообщения о мертвой букве:

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

Ответ 3

Вы просмотрели API Очередь описания? Там свойство называется MessageCount.

Здесь также находится страница справочной документации .NET SDK.

Ответ 4

Я столкнулся с этой же проблемой, пытаясь получить счет из очереди с мертвой буквой. Похоже, что deadlinequeue не позволяет вам напрямую получать счет, вы получаете его из MessageCountDetails обычной очереди.

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

Ответ 5

Также вы можете проверить ожидающие сообщения на Azure Management Portal... на панели управления для очереди служебной шины... под быстрый взгляд... вы можете увидеть длину очереди... это количество текущих/ожидающие сообщения в длину во время загрузки страницы панели инструментов.