我们在我们的项目中使用服务巴士队列。当管理员选择清除队列时,我们需要一种功能来删除队列中的所有消息。我在网上搜索,但无法找到QueueClient
课程中的任何功能。一次性清除蔚蓝服务巴士队列
我是否必须逐个弹出所有消息,然后标记它们以清除队列或者是否有更好的方法?
QueueClient queueClient = _messagingFactory.CreateQueueClient(
queueName, ReceiveMode.PeekLock);
BrokeredMessage brokeredMessage = queueClient.Receive();
while (brokeredMessage != null)
{
brokeredMessage.Complete();
brokeredMessage = queueClient.Receive();
}
我最近面临同样的问题,删除和重新创建不是循环工作的一个选项,但速度很慢,但是,使用'QueueClient'的'PrefetchCount'成员,您可以轻松地批量处理几千条消息往返,极大地加速了事情:http://msdn.microsoft.com/en-us/library/microsoft.servicebus.messaging.queueclient.prefetchcount.aspx – Necrolis 2013-12-20 21:29:59