このトピックでは、メッセージの可視状態と不可視状態、および可視性タイムアウト期間について説明します。また、Simple Message Queue (SMQ、旧称 MNS) で可視性タイムアウト期間を設定する方法についても説明します。
可視状態と不可視状態
可視: 可視メッセージは、多数のコンシューマーが読み取りおよび受信できます。コンシューマーとは、メッセージを受信して処理するサービスまたはアプリケーションです。
不可視: メッセージが 1 つのコンシューマーによって受信されると、そのメッセージは不可視になり、他のコンシューマーは受信できなくなります。これにより、他のコンシューマーが同じメッセージを処理することを防ぎます。
可視性タイムアウト期間
可視性タイムアウト期間: メッセージがコンシューマーによって受信されてから(他のコンシューマーには不可視)、他のコンシューマーが再び受信できるようになるまでの期間(他のコンシューマーには可視)。
可視性タイムアウト期間の設定
コンソール
キューの作成時および編集時に、[可視性タイムアウト期間] を設定できます。有効な値: 1 ~ 143200 秒(12 時間)。デフォルト値: 30 秒。詳細については、「キューの作成」をご参照ください。
API
クライアントで ChangeMessageVisibility オペレーションを呼び出して、ビジネス要件に基づいて可視性タイムアウト期間を変更することもできます。詳細については、「ChangeMessageVisibility」をご参照ください。
メッセージの消費がスムーズに行われるように、可視性タイムアウト期間を適切な値に設定してください。
12 時間などの長い期間を指定した場合、現在のコンシューマーがアプリケーションエラー、クラッシュ、または接続障害のためにメッセージを迅速に削除できない場合でも、他のコンシューマーはメッセージを消費するまでに 12 時間待機する必要があります。