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 Leasingverträgen haben Sie eine detailliertere 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 Attribute in den Clientbibliotheken auf hoher Ebene konfigurieren, um die Leaseverwaltung zu steuern.
Maximaler Zeitraum für die Bestätigung. Die maximale Zeitspanne, um die die Clientbibliothek die Bestätigungsfrist einer Nachricht mithilfe 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ätigungsverlängerung Die maximale Zeit, um die Bestätigungsfrist für jede der
modify acknowledgment deadlineAnfragen zu verlängern. 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 die Bestätigungsfristen eingehalten werden, wenn Sie die genau einmalige Zustellung nicht aktivieren.
Bestätigungsfristen manuell verwalten
Wir empfehlen dringend, die Clientbibliotheken auf hoher Ebene zu verwenden. Wenn das nicht funktioniert oder Sie den Unary-Pull verwenden müssen, können Sie mit der modify acknowledgment deadline-Anfrage die Fristen für die Bestätigung verlängern.
Die allgemeine C++-Clientbibliothek ist eine Ausnahme, die die Freigabeverwaltung bei Verwendung von Unary Pull bietet. 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 in der Schnellstart-Anleitung: 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:
Umgang mit Nachrichtenfehlern mit der Richtlinie für Abo-Wiederholungsversuche
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