首页 > 解决方案 > Amazon AWS SQS 队列消息保留期

问题描述

这是一个 3 部分的问题:

  1. 我了解 SQS 队列的消息保留期最长可设置为 14 天。我无法找到一个明确的答案来确定您是否也可以将时间段缩短回一个较小的值。

  2. 考虑到队列(原始保留期为 4 天)在我将消息保留期设置为 14 天的那一刻有以下消息:

    一种。队列中有 10 条消息
    b. 2 条正在发送的消息

    这个新设置的保留期将如何应用于这些消息?已经在队列中的 10 条消息在 4 天后是否仍会被删除,或者它们也会保留 14 天?
    如果 2 条正在运行的消息返回到队列(再次可见),它们是否会从队列中第一次收到它们起保留 14 天?

  3. 如果队列当前的保留期为 14 天,则队列中有一条消息已存在 5 天。现在如果我将保留期减少到 4 天,这条消息会发生什么?

标签: amazon-web-servicesamazon-sqs

解决方案


根据此处的 AWS Docs ,消息的保留期可以设置为 1 分钟到 14 天。

在我解决主要问题之前,进行中的消息是队列使用者已经接收到但尚未处理且正在处理的消息。对队列本身的更改应该对已经在进行中的消息没有影响,因为从技术上讲它们不再可见。

关于更新队列配置。当您更新 SQS 队列的保留策略时,队列中已存在的消息将保留在添加这些消息时存在的队列保留策略,并且新消息将收到从该点开始生效的保留策略。

在上面的第 2 点中,如果队列中有 10 条消息,保留期为 4 天,并且您将队列更新为 14 天,现有消息将保留 4 天保留策略,而新消息将保留 14 天适用的政策。对于上面的第 3 点,同样的原则适用于以其他方式调整队列时。如果您有一些具有 14 天保留策略的邮件并将队列策略更改为 4 天,则在保留策略为 14 天时添加到队列中的邮件将保留 14 天保留策略,新邮件将收到4 天保留政策。


推荐阅读