我希望将一些使用Microsoft.ServiceBus的工作迁移到Microsoft.Azure.ServiceBus。这样我们就可以将.net标准作为目标。
以前的代码使用ReceiveBatchAsync来在一次调用中检索多条消息。
在新的命名空间中,我看不到这样做的方法。
设计中是否有新的东西使这个多余,或者1.0.0版本只是部分完成?
最佳做法指南似乎是指Microsoft.ServiceBus版本。
答案 0 :(得分:1)
批处理方法现在也称为ReceiveAsync
,使用带maxMessageCount
参数的重载。
/// <summary>
/// Receives a maximum of <paramref name="maxMessageCount"/> messages from
/// the entity defined by IReceiverClient.Path using ReceiveMode mode.
/// </summary>
/// <param name="maxMessageCount">The maximum number of messages that will
/// be received.</param>
/// <returns>List of messages received. Returns null if no message is found.</returns>
Task<IList<Message>> ReceiveAsync(int maxMessageCount);
答案 1 :(得分:0)
在Microsoft.Azure.ServiceBus的2.0版本中,不支持批量接收消息。唯一的方法是使用消息泵,在Microsoft.ServiceBus.Messaging中称为 OnMessage ,在.Net Standard nuget包中称为 RegisterMessageHandler 。
Sean Feldman对这两位客户进行了很好的比较:Microsoft.ServiceBus.Messaging vs Microsoft.Azure.ServiceBus
Microsoft.Azure.ServiceBus仍在开发中,截至目前(2018年3月),它仍缺乏实体创建支持,因此您无法创建或更新主题订阅。