【发布时间】:2012-04-12 19:14:15
【问题描述】:
我们在项目中使用服务总线队列。当管理员选择清除队列时,我们需要一个从队列中删除所有消息的功能。我在网上搜索,但在 QueueClient 类中找不到任何功能。
我是否必须将所有消息一一弹出,然后将它们标记为完成以清除队列,还是有更好的方法?
QueueClient queueClient = _messagingFactory.CreateQueueClient(
queueName, ReceiveMode.PeekLock);
BrokeredMessage brokeredMessage = queueClient.Receive();
while (brokeredMessage != null )
{
brokeredMessage.Complete();
brokeredMessage = queueClient.Receive();
}
【问题讨论】:
-
我最近遇到了同样的问题,删除和重新创建不是一个选项,循环工作,但速度很慢,但是,使用
QueueClient的PrefetchCount成员,您可以轻松地批量处理一些单次往返发送数千条消息,极大地加快了处理速度:msdn.microsoft.com/en-us/library/…
标签: .net azure queue azureservicebus azure-servicebus-queues