メッセージが pull サブスクライバーに配信されると、サブスクライバーは確認応答期限内にメッセージを処理し、確認応答(ack)する必要があります。それ以外の場合は、サブスクライバーは確認応答期限を変更する呼び出しで期限を延長する必要があります。
Pub/Sub の高レベル クライアント ライブラリは、まだ確認応答されていないメッセージの期限を自動的に延長する機能として、リース管理を提供します。デフォルトでは、クライアント ライブラリは modifyAckDeadline リクエストを定期的に発行することで期限を 1 時間延長できます。Python、Go、Java、Net 用の高レベル クライアント ライブラリは、確認応答遅延の 99 パーセンタイルを使用して、各拡張機能の長さを決定します。
リース管理を使用すると、サブスクリプション レベルのプロパティを構成する場合と比較して、メッセージの確認期限をより細かく制御できます。サブスクリプション レベルの確認応答期限のみを使用する場合は、低い値と高い値のトレードオフのバランスをとる必要があります。値が低いほど重複が発生する可能性が高くなり、値が高いほど失敗したメールの再配信が遅れます。特にメッセージごとに予想される処理時間が大きく異なる場合、適切な値を決定するのは難しい場合があります。
確認応答期限など、サブスクリプションのプロパティの詳細については、サブスクリプションのプロパティをご覧ください。
リース管理の構成
高レベル クライアント ライブラリで次のプロパティを構成すると、リース管理を制御できます。
確認応答期間の延長。
modify acknowledgment deadline
リクエストを使用してメッセージの確認応答期限を延長できる最大時間。このプロパティを使用すると、サブスクライバーのクライアントがメッセージを処理する時間を指定できます。確認応答拡張ごとの最大期間。各
modify acknowledgment deadline
リクエストの確認応答期限を延長する最大時間。このプロパティを使用すると、Pub/Sub がメッセージの再配信に要する時間を定義できます。再配信は、メッセージを処理する最初のサブスクライバーがクラッシュするか、異常な状態になり、modify acknowledgment deadline
リクエストを送信できなくなった場合に発生します。確認応答拡張ごとの最小期間。各
modify acknowledgment deadline
リクエストの確認応答期限を延長する最小時間。このプロパティを使用すると、メッセージの再配信が発生するまでに経過する必要がある最小時間を指定できます。
1 回限りの配信を有効にしない限り、確認応答期限は確実に遵守されます。
確認応答期限を手動で管理する
単項 pull または低レベルのクライアント ライブラリを使用しているときにメッセージの期限切れと再配信を回避するには、modify acknowledgment deadline
リクエストを使用して確認応答期限を延長します。例外は、単項 pull を使用するときにリース管理を提供する Go と C++ の高レベル クライアント ライブラリです。リース管理を使用した単項 pull については、次のサンプルをご覧ください。
C#
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の C# の設定手順を実施してください。詳細については、Pub/Sub C# API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Java の設定手順を実施してください。詳細については、Pub/Sub Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Node.js の設定手順を実施してください。詳細については、Pub/Sub Node.js API のリファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Python の設定手順を実施してください。詳細については、Pub/Sub Python API リファレンス ドキュメントをご覧ください。
Ruby
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Ruby の設定手順を実施してください。詳細については、Pub/Sub Ruby API リファレンス ドキュメントをご覧ください。
次のステップ
サブスクリプションに構成できる他の配信オプションについて確認します。