- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这两个:
queueClient.PeekBatch(Convert.ToInt32(60));
还有这个:
messageReceiver.PeekBatch(Convert.ToInt32(60));
不要“完全”工作。它们返回较小的数量,相反,我必须在循环中“泵送”这些方法,直到我知道我们使用的消息数量:
var count = queue.MessageCountDetails.ActiveMessageCount;
我缺少哪些设置,为什么 Azure 如此小气,不允许我撤回所有 60 条消息 - 我知道它们都在那里 - 一次?
最佳答案
根据 azure 样本,您传入的数字是上限,而不是完全匹配。因此,您只能依赖它返回或更少的消息数。
“我们传递给 PeekBatchAsync 的计数 20 是我们想要获取的消息数量的上限。该服务可以返回任意数量的消息,在本例中最多为 20 条,但至少会返回一条消息如果消息在最新读取序列号之后可用”
Azure 服务总线的批处理通常仅用作性能增强,以避免一次返回一条消息的开销。在内部可能已经发现返回更小但更多的批处理性能更高。使用精确数量进行批处理不是您的程序逻辑应该依赖的,我真正使用它只是为了提高应用程序性能,因为它允许比单个查看更高的吞吐量。
在一批中返回的数据量似乎也有限制,这可能适用于您。
“一次批量调用最多返回 256 kByte 的累积消息大小。”
关于c# - 为什么 QueueClient.PeekBatch() 和 MessageReceiver.PeekBatch() 不拉回您指定的消息数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43663054/
这两个: queueClient.PeekBatch(Convert.ToInt32(60)); 还有这个: messageReceiver.PeekBatch(Convert.ToInt32(60)
我有一个包含大约 900 条消息的 Azure 队列(ServiceBus 主题订阅死信队列)。我想列出它们以用于调试目的。我调用 PeekBatch 方法,参数 messageCount 设置为 1
我有一个包含大约 900 条消息的 Azure 队列(ServiceBus 主题订阅死信队列)。我想列出它们以用于调试目的。我调用 PeekBatch 方法,参数 messageCount 设置为 1
我正在尝试使用 Azure SubscriptionClient.PeekBatch(int count) 来查看消息。对于 0 - 9 的计数值,一切正常,但一旦我输入 > 9 的值,我只会收到 9
我正在使用 PeekBatch() QueueClient上的方法(Windows Azure 服务总线包版本 2.1.2.0)。 它第一次工作正常,并返回队列中存在的单个消息,但后续调用什么也不返回
我是一名优秀的程序员,十分优秀!