

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon SQS 延迟队列
<a name="sqs-delay-queues"></a>

延迟队列允许您将向使用者发送新消息推迟几秒钟，例如，当您的使用者应用程序需要更多时间来处理消息时。如果您创建延迟队列，则发送到该队列的任何消息在延迟期间对使用者都不可见。队列的默认（最小）延迟为 0 秒。最大值为 15 分钟。有关使用控制台配置延迟队列的信息，请参阅[使用 Amazon SQS 控制台配置队列参数](sqs-configure-queue-parameters.md)。

**注意**  
对于标准队列，每队列延迟设置是**不可追溯的** — 更改此设置不会影响队列中已有的消息的延迟。  
对于 FIFO 队列，每队列延迟设置**可追溯**，更改此设置会影响队列中已有的消息的延迟。

延迟队列类似于[可见性超时](sqs-visibility-timeout.md)，因为这两种特征都使得使用者在特定的时间段内无法获得消息。二者之间的区别在于：对于延迟队列，消息在首次添加到队列时 是隐藏的；而对于可见性超时，消息只有在从队列使用后 才是隐藏的。下图说明了延迟队列和可见性超时之间的关系。

![\[显示延迟队列和可见性超时之间的关系的图。\]](http://docs.aws.amazon.com/zh_cn/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-delay-queues-diagram.png)


**延长调度选项**

虽然 Amazon SQS 延迟队列和消息计时器支持在将来最多 15 分钟内调度消息传递，但您可能需要更灵活的调度功能。在这种情况下，请考虑使用 [EventBridge 调度器](https://docs.aws.amazon.com/scheduler/latest/UserGuide/what-is-scheduler.html)，它使您能够调度数十亿次一次性或重复性 API 操作，且无时间限制。EventBridge 调度器是适合高级消息调度使用案例的推荐解决方案。

要对单条消息而非整个队列设置延迟（以秒为单位），请使用[消息计时器](sqs-message-timers.md)以允许 Amazon SQS 使用消息计时器的 `DelaySeconds` 值，而不是使用延迟队列的 `DelaySeconds` 值。[EventBridge 调度器](https://docs.aws.amazon.com/scheduler/latest/UserGuide/what-is-scheduler.html)还支持调度单条消息。