一度で紺碧サービスバスキューをクリアします。管理者がキューをクリアすることを選択したときに、すべてのメッセージをキューから削除する機能が必要です。私はネット上で検索が、QueueClient
クラス内これを行う任意の関数を見つけることができませんでした。は、我々は我々のプロジェクトでサービスバスキューを使用している
私はすべてのメッセージを一つずつをポップする必要があり、その後、キューをクリアするには、彼らが完全にマーキングやより良い方法はありますか?あなたのようなwhileループ内Receive()
メソッドを使用して
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