SQSの初回受信を遅らせる遅延キュー

ア(誤り):可視性タイムアウト0秒はメッセージが即座に再配信され無限ループに陥る。 イ(誤り):可視性タイムアウトは受信後の再取得を抑える。最初の取得を送信から五分後にする遅延とは異なる。 ウ:SQS遅延キュー(またはメッセージタイマー)を使用すると、キューに追加された新しいメッセージがコンシューマーに配信されるまでの遅延時間(最大15分)を設定でき、5分間(300秒)ワーカーから見えない状態を作れる。 エ(誤り):ワーカー側のsleep待機はコンピュートリソースを無駄に消費し、障害時に再試行されるため不適切である。

注文処理ワークフローにおいて、ユーザーが注文を確定してから5分間はキャンセル可能な猶予期間を設けている。注文メッセージがSQSキューに送信されてから最初の5分間はワーカーアプリケーションから不可視(不可視配信)となり、5分経過後に初めてワーカーに取得・処理されるようにしたい。

最も適切なSQS機能を1つ選択してください。

出典AWS非公式・オリジナル問題
ア
SQSの可視性タイムアウトを0秒に設定する
イ
メッセージ受信後の可視性タイムアウトを300秒に設定する
ウ
SQSの「遅延キュー(Delay Queues)」でDelaySecondsを300秒(5分)に設定する
エ
メッセージ受信後にワーカー側でThread.sleep(300000)を実行して待機する