- 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/
Microsoft 已弃用名为 Microsoft.Azure.ServiceBus 的包,并将该包更新为 Azure.Messaging.ServiceBus,但在最近的更新中,他们删除了 Queu
创建多个队列客户端来监听不同服务总线队列的最佳实践是什么?有一个 MessagingFactory 类,但是 Microsoft.ServiceBus.Messaging 似乎不再作为 nuget 包
Microsoft 已弃用名为 Microsoft.Azure.ServiceBus 的包,并将该包更新为 Azure.Messaging.ServiceBus,但在最近的更新中,他们删除了 Queu
创建多个队列客户端来监听不同服务总线队列的最佳实践是什么?有一个 MessagingFactory 类,但是 Microsoft.ServiceBus.Messaging 似乎不再作为 nuget 包
QueueClient.Receive() 按什么顺序传送消息?我一直在运行一些测试,如果您不 Complete() 它们,我可以看到一些消息(我猜是最上面的消息)会被一遍又一遍地传递。有没有办法强制
我想限制 Azure ServiceBus 队列接收器中的重试次数。 使用带有 MaxRetryCount:3 的控制台应用程序发送消息 private static async Task MainA
背景 我们有一个使用 Azure 服务总线作为消息代理的数据传输解决方案。我们通过 x 队列从 x 数据集传输数据 - 以 x 专用 QueueClient 作为发送方。有些发件人以每两秒一条消息的速
我一直在使用 QueueClient 来处理存储队列的所有功能。我在网上的几个例子中注意到有一个 CloudQueue,它还有几个方法。 两者有什么区别?为什么要使用其中一种而不是另一种? 编辑:我同
当我调用QueueClient.Close()时,它总是引发异常: The operation cannot be performed because the entity has been clos
我正在使用服务总线来连接 Web 角色和辅助角色。我的辅助角色处于连续循环中,并且我正在使用 QueueClient.Receive() 方法接收 Web 角色发送的消息。 但是使用这种方法,如果服务
在 Azure 服务总线中,您可以使用 QueueClient 和 MessageFactory 发送代理消息。我想知道您为什么要使用其中一种而不是另一种。 最佳答案 Azure 服务总线提供了不同的
我的任务是提高处理队列消息的辅助角色的性能。 它使用 queueclient.OnMessage 模型,MaxConcurrentCalls 设置为 1。 在处理过程中,thread.sleep 会持
我正在使用服务总线队列将项目从生产者传递到消费者。生产者能够成功地将项目发送到队列,并且消费者能够正确接收,但随后它显示出奇怪的行为,其中接收方法返回 null (没有错误)代理消息,即使队列有数千条
我需要创建一个高吞吐量的 ServiceBus 队列客户端,每秒可以处理 1000 条消息。我设法实现此目的的唯一方法是通过 ReceiveMode.ReceiveAndDelete 和 Prefet
QueueClient.OnMessage接受回调,Action ,作为一个参数,将由内部消息泵执行,当消息可用时,内部消息泵会不断轮询队列(或订阅)。 我一直在研究 Reflector 中的 Bro
我们将 Azure 服务总线 (Microsoft.Azure.ServiceBus 3.1.0) 中的 session 队列与 ASP.NET Core (2.1) 结合使用。 我们创建了一个 Ho
我正在从异步方法ConfigureConnectionString 调用异步方法InsertOperation。我是否正确使用了 client.OnMessage 调用?我想异步处理队列中的消息,然后
我正在使用Azure Storage Queues我注意到,尽管我的队列中没有很多元素,但我的成本很高。当我分析指标时,我还注意到队列上的带宽很高。经过一番调查后,我发现我的代码有问题。我使用以下循环
我正在从异步方法ConfigureConnectionString 调用异步方法InsertOperation。我是否正确使用了 client.OnMessage 调用?我想异步处理队列中的消息,然后
我正在使用Azure Storage Queues我注意到,尽管我的队列中没有很多元素,但我的成本很高。当我分析指标时,我还注意到队列上的带宽很高。经过一番调查后,我发现我的代码有问题。我使用以下循环
我是一名优秀的程序员,十分优秀!