Estamos utilizando una cola de bus de servicio en nuestro proyecto. Necesitamos una funcionalidad para eliminar todos los mensajes de la cola cuando el administrador decida borrar la cola. Busqué en la red pero no pude encontrar ninguna función que haga esto dentro de la clase QueueClient
.Borrado de la cola del bus de servicio azul de una vez
¿Tengo que mostrar todos los mensajes uno por uno y luego marcarlos para borrar la cola o hay una manera mejor?
QueueClient queueClient = _messagingFactory.CreateQueueClient(
queueName, ReceiveMode.PeekLock);
BrokeredMessage brokeredMessage = queueClient.Receive();
while (brokeredMessage != null)
{
brokeredMessage.Complete();
brokeredMessage = queueClient.Receive();
}
Recientemente me enfrenté al mismo problema, y eliminar y volver a crear no era una opción, el bucle funciona, pero es lento, sin embargo, usando el miembro 'PrefetchCount' del' QueueClient' puede fácilmente agrupar varios miles de mensajes en un solo ida y vuelta, acelerando enormemente las cosas: http://msdn.microsoft.com/en-us/library/microsoft.servicebus.messaging.queueclient.prefetchcount.aspx – Necrolis