【发布时间】:2020-03-28 08:01:54
【问题描述】:
有没有一种方法可以在不遍历所有消息并使用 getEnqueuedTimeUTC 的情况下获取订阅中最旧的排队消息?这种方法的问题是,如果您没有完成消息,相同的消息将在队列顶部弹出。基本上我会陷入无限循环。
如何找到订阅中最旧的消息?
【问题讨论】:
标签: azureservicebus
有没有一种方法可以在不遍历所有消息并使用 getEnqueuedTimeUTC 的情况下获取订阅中最旧的排队消息?这种方法的问题是,如果您没有完成消息,相同的消息将在队列顶部弹出。基本上我会陷入无限循环。
如何找到订阅中最旧的消息?
【问题讨论】:
标签: azureservicebus
第一个排队的消息将是第一个可用于处理的消息(假设它没有被安排)。使用队列或订阅客户端的PeekAsync() 方法查看队列将为您提供该消息的信息,包括入队时间。
【讨论】:
MacxLockDuration 时间内完成消息,则该消息将再次可用,并将立即由另一个计算消费者处理。消息将不会返回到队列的末尾。我理解您的问题和问题的方式是您希望确保必须在之前处理第一条消息,然后再处理任何后续消息。 IE。您正在寻找订单吗?如果这就是您所追求的,那么您可以使用消息会话功能来确保订单。但是接收器无法横向扩展。