繁体   English   中英

Azure Service Bus ReceiveBatch返回0条消息

[英]Azure Service Bus ReceiveBatch returning 0 messages

我的主题订阅中有超过1000条消息。

当我致电接收时,我收到一条预期的消息。 当我调用ReceiveBatch时,我收到0条消息。

可能是什么问题?

MessagingFactory factory = MessagingFactory.CreateFromConnectionString(Config.ServiceBusTopicConnectionString);
var path = SubscriptionClient.FormatSubscriptionPath(topicPath, subscriptionName);
var receiver = factory.CreateMessageReceiver(path, ReceiveMode.PeekLock);

var messages = receiver.ReceiveBatch(50); //This returns 0 messages
//var message = receiver.Receive(); //This returns 1 message as expected

您是否已启用该主题的批处理?

https://msdn.microsoft.com/zh-cn/library/azure/hh528527.aspx

批处理发生在所有启用批处理存储访问的实体上。 创建新队列,主题或订阅时,默认情况下启用批处理存储访问。 若要禁用批量存储访问,请在创建实体之前将EnableBatchedOperations属性设置为false。 例如:

C#

QueueDescription qd = new QueueDescription();
qd.EnableBatchedOperations = false;
Queue q = namespaceManager.CreateQueue(qd);

批处理存储访问不会影响可计费消息传递操作的数量,它是队列,主题或订阅的属性。 它与接收模式和客户端与服务总线服务之间使用的协议无关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM