

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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_tw/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)也支援排程個別訊息。