gpt4 book ai didi

amazon-web-services - AWS SQS 可见性超时对单个消息还是每个轮询的所有消息有效

转载 作者:行者123 更新时间:2023-12-04 00:21:54 24 4
gpt4 key购买 nike

我正在参加 AWS 类(class)并试图了解 AWS SQS(简单队列服务)的工作原理。我对可见性超时感到有些困惑。我知道可见性超时是要在其中处理消息的持续时间。

这是模型

enter image description here

正如您在图中所见,消费者将拉取一条或多条消息,并在可见性超时内处理一条或多条消息。如果一条或多条消息未在可见性超时内处理,则使用者将不会接收或处理该消息或这些消息,并且这些消息将保留在队列中。

以下是我的困惑:

  • 可见性超时是否对一次轮询中的所有消息都有效?或者超时分别应用于每条消息?例如,消费者一次轮询 5 条消息。如果其中 2 个在超时内未处理,则将其中的 2 个发送回队列,并删除其他 3 个。或者在超时内处理所有 5 条消息,如果其中任何一条消息失败,则所有消息都将被发送回队列。
  • 这是我的第二个困惑。可见性超时如何有效?那是消费者开始轮询消息并接收消息的时间吗?还是在消费者开始轮询消息并在消费者端完成处理消息(例如,将消息保存到数据库中)的时间有效?
  • 最佳答案

    当您收到消息时,可见性超时开始。如果您批量收到多条消息,则所有消息的可见性超时都从那时开始。

    enter image description here

    要告诉 SQS 您已经完全处理了一个 SQS 消息,您可以使用 DeleteMessage 从 SQS 中删除该消息。如果您只处理了 5 条消息中的 3 条,那么您只从 SQS 中删除了这 3 条消息。

    如果您没有在可见性超时到期之前将它们从 SQS 中删除,或者您通过将它们的可见性超时设置为零明确地使它们再次可见,则其他使用者可以再次看到正在进行的消息。您还可以在处理动态消息后动态增加可见性超时。

    关于amazon-web-services - AWS SQS 可见性超时对单个消息还是每个轮询的所有消息有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59953553/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com