回答
服務總線隊列沒有同時檢索多個消息的方式,但你可以設置了預取,這裏的消息將被緩存(導致更快的性能)。有關預取的更多信息here。
如果您確實需要批量讀取消息,請考慮@AvkashChauhan指出的內容:Windows Azure存儲隊列最多支持32條消息,以便在單個事務中一次讀取。您需要單獨刪除每個隊列消息;沒有批量刪除。
當從隊列中檢索消息時,在單個存儲事務中將多個消息一起批量處理。隊列服務API中的GetMessages方法允許在單個事務中取消排隊指定數量的消息
當通過GetMessages方法檢索消息時,隊列服務API在單個出列操作中支持的最大批處理大小限於超過此限制將導致運行時異常。
我想OP是詢問服務總線隊列,而不是Windows Azure存儲隊列。 –
但是+1,因爲它是從隊列中大量讀取消息的唯一方法。 –
您可以使用Microsoft.ServiceBus.Messaging的ReceiveBatch方法:
private MessageReceiver messageReceiver;
var brokeredMessagesList = messageReceiver.ReceiveBatch(100);
你可以把一個鎖隊列中,直到接收到一批加工完成,你與你的處理完成後,你可以調用CompleteBatch來釋放隊列上的鎖定:
List<Guid> messageLockTokenList = new List<System.Guid>();
foreach(BrokeredMessage message in brokeredMessagesList)
{
messageLockTokenList.Add(message.LockToken);
}
messageReceiver.CompleteBatch(messageLockTokenList)
- 1. 從消息接收隊列
- 2. JMS隊列接收消息?
- 3. Linux消息隊列 - 多個接收器
- 4. 消息隊列中的多條消息
- 5. 接收隊列中的消息數
- 6. 消息從隊列
- 7. 消息隊列mutilple接收機實現
- 8. 消息隊列發送和接收
- 9. 消息隊列:接收錯誤
- 10. JMS隊列消息接收訂單
- 11. 使用python從ActiveMQ隊列接收單條消息STOMP
- 12. 隊列可容納多少條消息?
- 13. 消息隊列:每條消息保證
- 14. Spring的@JmsListener只接收來自Solace隊列的一條消息
- 15. 多主題消息隊列
- 16. 多播消息隊列
- 17. 消息隊列多線程
- 18. 無法接收jms隊列中的消息
- 19. Websphere消息隊列
- 20. Sinatra消息隊列
- 21. Boost消息隊列
- 22. unix消息隊列
- 23. IPC - 消息隊列
- 24. 消息隊列ENOMEM
- 25. RabbitMQ:從多個隊列一次只消費一條消息
- 26. 爲什麼我只從SQS隊列中收到一條消息?
- 27. 從Azure服務總線接收消息時的NPE隊列
- 28. 有條件notifyer的消息隊列
- 29. Amazon SQS隊列未收到消息
- 30. 收聽Azure隊列消息Win Form
爲什麼你需要這樣做沒有循環? – Frans
例如,我希望每次調用函數 – GoodSpeed
時都收到10條消息,但是爲什麼?你不能只循環10次,每次讀一條消息嗎? – Frans