azure - QueueClient.Receive() 传递的消息的顺序是什么

标签 azure azureservicebus azure-servicebus-queues

QueueClient.Receive() 按什么顺序传送消息? 我一直在运行一些测试,如果您不 Complete() 它们,我可以看到一些消息(我猜是最上面的消息)会被一遍又一遍地传递。 有没有办法强制它以循环方式交付?

最佳答案

当您有一条消息已传递但未完成时,一旦 LockDuration 过期,消息预计会显示在队列中并再次被使用。您必须完成该消息。如果您不这样做,它最终会进入 DLQ,但在此之前您的消费者将多次收到它。

QueueClient.Receive 获取代理(服务器)上可用的任何内容。我不遵循循环交付的想法,因为它是一个队列。您会得到队列中的内容。根据经验,我建议不要依赖消息的顺序

也就是说,有一个 ASB session 功能可以保留并保证交付顺序。如果您正在寻找 session ,similar question之前被问过。

关于azure - QueueClient.Receive() 传递的消息的顺序是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39848482/

相关文章:

azure - 在异步方法中使用 QueueClient.OnMessage 是否有意义?

azure - 记录 Azure 服务总线服务器异常

azure - Bicep - 将数组与循环配对

python - 导入错误: cannot import name 'ServiceBusClient' from 'azure.servicebus'

azure - 使用 Azure 总线服务时,ServiceBus/ServiceBusTrigger 方法与使用 QueueClient 的方法有什么区别?

azure - 使用arm模板在Azure数据工厂中启用诊断

databricks 中的表中的 Azure 存储帐户文件详细信息

azure - 使用 Secret Store CSI 驱动程序将 AKV 变量导入应用程序

azure - 我们如何使用事件网格和服务总线改进我们的架构?

从 Azure Web 应用程序发送消息时 Azure ServiceBus 超时