web-dev-qa-db-fra.com

Détermination du nombre de messages dans la file d'attente Azure Service Bus

Je sais qu'il existe un moyen de déterminer le nombre de messages (ou leur nombre approximatif) dans la file d'attente Azure (compte de stockage); Cependant, existe-t-il un moyen de rechercher le nombre de messages en attente sur une file d'attente Azure Service Bus ?

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

Il s’appelle MessagesCountDetails.ActiveMessageCount. Il renvoie le numéro de Messages actifs dans la file d’attente. Vous avez probablement des messages de lettres mortes:

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

avez-vous consulté l'API Description de la file d'attente ? Il existe une propriété appelée MessageCount.

Voici également la page de documentation de référence du SDK .NET .

7
David Makogon

Voici un exemple PowerShell pour surveiller en permanence la longueur de la file d'attente telle qu'elle est utilisée dans Azure Portal Cloud Shell

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

J'ai rencontré ce même problème en essayant d'obtenir le compte de la file d'attente des lettres mortes. Il semble que la file d'attente deadletter ne vous permette pas d'obtenir un nombre directement, vous l'obtenez à partir des détails MessageCountDetails de la file d'attente normale.

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