understand porta microsoft management azure azureservicebus azure-queues azure-servicebus-queues

porta - Determinar cuántos mensajes hay en la cola del bus de Azure Service



portal azure web (6)

¿has visto la API de descripción de cola ? Hay una propiedad llamada MessageCount .

Aquí también está la página de documentación de referencia de .NET SDK .

Sé que hay una manera de determinar la cantidad de mensajes (o el número aproximado) en la Cola de Azure (Cuenta de tienda); sin embargo, ¿hay alguna forma de consultar la cantidad de mensajes pendientes en una cola del Bus de servicio de Azure?


Aquí hay un ejemplo de PowerShell para observar continuamente la longitud de la cola como se usa en Azure Portal Cloud Shell.

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


Me encontré con este mismo problema tratando de obtener el recuento de la cola de mensajes no entregados. Parece que el deadletterqueue no le permite obtener un recuento directamente, lo obtiene de MessageCountDetails de la cola normal.

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


Se llama MessagesCountDetails.ActiveMessageCount. Devuelve el número de los mensajes activos en la cola. Probablemente tengas algunos mensajes de letras muertas:

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


También ... puede consultar los mensajes pendientes en el Portal de administración de Azure ... en el tablero de mandos para la cola del bus de servicio ... en una vista rápida ... puede ver la longitud de la cola ... este es el número de mensajes actuales / pendientes de longitud en el momento de la carga de la página del panel de control.


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