すべてのプロダクト
Search
ドキュメントセンター

:複数のコンシューマー クライアントがキューからメッセージを取得しようとするときに、SMQ はメッセージの損失または反復消費をどのように防ぎますか?

最終更新日:Jan 13, 2025

このトピックでは、複数のクライアントがキューからメッセージを同時に取得しようとするときに、Simple Message Queue (旧 MNS) がメッセージの損失または反復消費をどのように防ぐかについて説明します。

VisibilityTimeout パラメーターは、各 SMQ キューに対して構成できます。 VisibilityTimeout パラメーターは、コンシューマー クライアントがメッセージを取得した後のメッセージの非表示期間を指定します。

メッセージがキューから取得されると、メッセージのステータスは Active(表示)から Inactive(非表示)に変わります。 非表示期間中は、他のコンシューマー クライアントはメッセージを取得できません。

  • 非表示期間内にメッセージが消費された場合、コンシューマー クライアントは受信ハンドルを使用してメッセージを削除する必要があります。

  • 非表示期間内にメッセージが消費されない場合、コンシューマーは ChangeVisibilityTimeout リクエストを送信して非表示期間を延長する必要があります。 それ以外の場合、非表示期間が経過すると、メッセージのステータスは Inactive(非表示)から Active(表示)に変わり、他のコンシューマー クライアントがメッセージを取得できるようになります。