Nous utilisons une file d'attente de bus de service dans notre projet. Nous avons besoin d'une fonctionnalité pour supprimer tous les messages de la file d'attente lorsque l'administrateur choisit d'effacer la file d'attente. J'ai cherché sur le net mais je n'ai trouvé aucune fonction qui le fasse dans la classe QueueClient
.Effacement d'une file d'attente de bus de service azure en une fois
Dois-je faire apparaître tous les messages un par un et les marquer pour terminer la file d'attente ou y a-t-il une meilleure solution?
QueueClient queueClient = _messagingFactory.CreateQueueClient(
queueName, ReceiveMode.PeekLock);
BrokeredMessage brokeredMessage = queueClient.Receive();
while (brokeredMessage != null)
{
brokeredMessage.Complete();
brokeredMessage = queueClient.Receive();
}
J'ai récemment fait face au même problème, et la suppression et la recréation n'étaient pas une option, la boucle fonctionne, mais est lente, cependant, en utilisant le membre 'PrefetchCount' de' QueueClient' vous pouvez facilement traiter quelques milliers de messages en un seul aller-retour, accélérer les choses énormément: http://msdn.microsoft.com/en-us/library/microsoft.servicebus.messaging.queueclient.prefetchcount.aspx – Necrolis