bru*_*use 5 c# servicebus azure
这两个:
queueClient.PeekBatch(Convert.ToInt32(60));
还有这个:
messageReceiver.PeekBatch(Convert.ToInt32(60));
不要"完全"工作.它们返回的数量较少,而我必须循环"泵"这些方法,直到我知道我们使用的消息数量:
var count = queue.MessageCountDetails.ActiveMessageCount;
我缺少什么设置,为什么Azure如此吝啬并且不允许我退回,所有60条消息 - 我知道那些 - 立刻?
好吧,根据天蓝色样本,您传入的数字是上限,而不是完全匹配。因此,您只能依赖它返回该数量或更少的消息。
“我们传递给 PeekBatchAsync 的计数 20 是我们想要获取的消息数量的上限。该服务可以返回任意数量的消息,在本例中最多为 20 条,但如果消息是最新读取序列号之后可用”
Azure 服务总线的批处理通常仅用作性能增强,以避免一次返回一条消息的开销。在内部,它可能已经发现返回更小但更多的批次性能更高。使用精确数量进行批处理不是您的程序逻辑应该依赖的东西,我只是真正使用它来提高应用程序性能,因为允许比单个查看更多的吞吐量。
一批中返回的数据量似乎也适用于您。
“一次批量调用最多返回 256 kByte 的累积消息大小。”
| 归档时间: |
|
| 查看次数: |
765 次 |
| 最近记录: |