我正在使用 Azure.Messaging.ServiceBus
nuget 包来处理 Azure 服务总线。我们已经创建了一个主题和订阅。该订阅有 100 多条消息。我们希望阅读所有消息并在消息到达时继续阅读消息。
Microsoft.Azure.ServiceBus
包(现已弃用)提供了 RegisterMessageHandler
,用于处理每个传入消息。我无法在 Azure.Messaging.ServiceBus
nuget 包下找到类似的选项。
我可以一次读取一条消息,但每次都必须手动调用 await receive.ReceiveMessageAsync();
。
最佳答案
要接收多条消息(一批),您应该使用 ServiceBusReceiver.ReceiveMessagesAsync()
(不是复数,不是单数“消息”)。此方法将返回它可以发回的任意数量的消息。为了确保检索到所有 100 多条消息,您需要循环直到没有可用的消息。
如果您想使用处理器,新的 SDK 中也提供了该功能。请参阅我对类似问题的回答 here .
关于Azure 服务总线使用 Azure.Messaging.ServiceBus 一次读取所有消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73750889/