gpt4 book ai didi

amazon-web-services - 我在可见性超时之前收到相同的多个 Sqs 消息

转载 作者:行者123 更新时间:2023-12-04 00:16:18 25 4
gpt4 key购买 nike

我将可见性超时设置为 12 小时,最大消息为 3,延迟时间为 15 分钟,几分钟后我会自动收到 sqs 消息,我再次收到相同的消息。

为什么我会在没有超时的情况下收到多个 sqs 消息?
可见性超时后,它会删除队列中的消息还是再次发送 sqs 消息?

最佳答案

ReceiveMessage()在 Amazon SQS 队列上调用,最多 10 条消息(可配置)将从队列中检索。

这些消息将被标记为 隐形机上 .这意味着消息仍在队列中,但不会通过另一个 ReceiveMessage() 返回。称呼。消息将 保持隐身一段时间 .默认时间段在队列上配置(“默认可见性超时”)或在检索消息时配置( VisibilityTimeout )。

当应用程序处理完消息后,它应该调用 DeleteMessage() ,通过 MessageHandle那是随消息一起提供的。消息将是 从队列中删除 .

如果在删除消息之前不可见期到期,则为 再次放入队列 并且应用程序可以再次检索它。因此,请确保将您的不可见超时设置为比应用程序通常处理消息所需的时间更长。

一条消息可能是 多次检索来自亚马逊 SQS。这种情况很少见,但在有多个进程同时检索消息的情况下可能会发生。因此,SQS 是“至少一次交付”。如果这是一个问题,您可以使用 FIFO 队列 (并非在每个地区都可用)将保证每条消息仅传递一次,但对 FIFO 队列有吞吐量限制。

因此,如果您多次收到一条消息:

  • 您应该检查您的隐身超时 设置(默认设置和调用时可以传递的值 ReceiveMessage() )
  • 考虑使用 FIFO 队列
  • 让您的应用程序在再次处理消息之前检查消息是否已被处理(例如,通过 唯一 ID )
  • 关于amazon-web-services - 我在可见性超时之前收到相同的多个 Sqs 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45135083/

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