우리 프로젝트에서 서비스 버스 대기열을 사용하고 있습니다. 관리자가 큐를 지우도록 선택하면 큐에서 모든 메시지를 제거하는 기능이 필요합니다. 그물을 검색했지만 QueueClient
클래스 안에서이 작업을 수행하는 기능을 찾을 수 없습니다.한 번에 하늘빛 서비스 버스 대기열 지우기
모든 메시지를 하나씩 팝핑 한 다음 큐를 지우려면 완료 표시를해야합니까? 아니면 더 좋은 방법이 있습니까? 당신이 Receive()
방법은 큐에 나타나는 다른 메시지 기다리고있을 것 같은, 큐가 비어되면 코드가 무기한 실행하게됩니다처럼 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