回答
服务总线队列没有同时检索多个消息的方式,但你可以设置了预取,这里的消息将被缓存(导致更快的性能)。有关预取的更多信息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