Wenn eine Nachricht an einen Pull-Abonnenten gesendet wird, muss der Abonnent die Nachricht innerhalb des Bestätigungszeitlimits verarbeiten und bestätigen. Andernfalls muss der Abonnent die Frist durch einen Anruf verlängern, um die Bestätigungsfrist zu ändern.
Die Pub/Sub-Clientbibliotheken auf hoher Ebene bieten die Lease-Verwaltung als Funktion, die die Frist einer noch nicht bestätigten Nachricht automatisch verlängert. Standardmäßig können die Clientbibliotheken die Frist durch regelmäßige modifyAckDeadline-Anfragen auf eine Stunde verlängern. Die Clientbibliotheken auf hoher Ebene für Python, Go und Java verwenden das 99. Perzentil der Bestätigungsverzögerung, um die Länge jeder Verlängerung zu bestimmen.
Mit der Verwaltung von Leases haben Sie eine genauere Kontrolle über die Bestätigungsfrist für Nachrichten als bei der Konfiguration des Attributs auf Aboebene. Wenn Sie nur die Bestätigungsfrist auf Aboebene verwenden, müssen Sie einen Kompromiss zwischen einem niedrigen und einem hohen Wert eingehen. Ein niedriger Wert erhöht die Wahrscheinlichkeit von Duplikaten und ein hoher Wert verzögert die erneute Zustellung fehlgeschlagener Nachrichten. Den richtigen Wert zu ermitteln, kann schwierig sein, insbesondere wenn die erwartete Bearbeitungszeit für verschiedene Nachrichten stark variiert.
Weitere Informationen zu den Attributen eines Abos, einschließlich der Bestätigungsfrist, finden Sie unter Abo-Attribute.
Konfiguration der Leasingverwaltung
Sie können die folgenden Eigenschaften in den Clientbibliotheken auf hoher Ebene konfigurieren, um die Verwaltung von Leases zu steuern.
Maximale Verlängerungsfrist für die Bestätigung: Die maximale Zeitspanne, um die die Clientbibliothek die Bestätigungsfrist einer Nachricht mit der
modify acknowledgment deadline
-Anfrage verlängern kann. Mit dieser Eigenschaft können Sie festlegen, wie lange die Abonnentenclients Nachrichten verarbeiten sollen.Maximale Dauer für jede Bestätigungserweiterung Die maximale Zeit, um die die Bestätigungsfrist für jede der
modify acknowledgment deadline
Anfragen verlängert werden kann. Mit dieser Eigenschaft können Sie festlegen, wie lange Pub/Sub benötigt, um eine Nachricht noch einmal zu senden. Die erneute Zustellung erfolgt, wenn der erste Abonnent, der die Nachricht verarbeitet, abstürzt oder fehlerhaft wird und diemodify acknowledgment deadline
-Anfrage nicht mehr senden kann.Mindestdauer für jede Bestätigungserweiterung Die Mindestzeit, um die die Bestätigungsfrist für jede der
modify acknowledgment deadline
-Anfragen verlängert werden soll. Mit dieser Eigenschaft können Sie die Mindestzeit angeben, die vergehen muss, bevor eine Nachricht noch einmal gesendet wird.
Es kann nicht garantiert werden, dass Bestätigungsfristen eingehalten werden, wenn Sie die genau einmalige Zustellung nicht aktivieren.
Bestätigungsfristen manuell verwalten
Wenn Sie die Ablaufzeit und erneute Zustellung von Nachrichten bei Verwendung von Unary Pull oder den Clientbibliotheken auf niedriger Ebene vermeiden möchten, verwenden Sie die modify acknowledgment deadline
-Anfrage, um die Bestätigungsfristen zu verlängern. Ausnahmen sind die allgemeinen Go- und C++-Clientbibliotheken, die die Freigabeverwaltung bei Verwendung von Unary Pull bieten. Hier sind einige Beispiele für das Pull-Modell mit Einzelkauf und Leasingverwaltung:
C#
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C# in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
Java
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Java in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für PHP in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
Python
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Python in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Im folgenden Beispiel wird die Ruby-Pub/Sub-Clientbibliothek v3 verwendet. Wenn Sie noch die v2-Bibliothek verwenden, finden Sie hier die Migrationsanleitung für v3. Eine Liste der Ruby v2-Codebeispiele finden Sie unter Eingestellte Codebeispiele.
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Ruby im Schnellstart: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Nächste Schritte
Weitere Auslieferungsoptionen, die Sie für ein Abo konfigurieren können:
Nachrichtenfehler mit der Richtlinie für Abo-Wiederholungsversuche behandeln
Nicht zugestellte Nachrichten an ein Thema für unzustellbare Nachrichten weiterleiten
Zuvor bestätigte Nachrichten wiedergeben oder Nachrichten löschen
Mehr Nachrichten mit der Funktion zur Steuerung der Parallelität verarbeiten