Wenn eine Nachricht an einen Pull-Abonnenten gesendet wird, muss dieser die Nachricht innerhalb der Bestätigungsfrist verarbeiten und bestätigen. Andernfalls muss der Abonnent die Frist mit einem Aufruf zum Ändern der Bestätigungsfrist verlängern.
Die allgemeinen Pub/Sub-Clientbibliotheken bieten die Freigabeverwaltung als Funktion, mit der die Frist für eine Nachricht, die noch nicht bestätigt wurde, automatisch verlängert wird. Standardmäßig können die Client bibliotheken die Frist auf eine Stunde verlängern, indem sie regelmäßig modifyAckDeadline -Anfragen senden. Die allgemeinen Clientbibliotheken 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 Freigabeverwaltung haben Sie eine genauere Kontrolle über die Bestätigungsfrist für Nachrichten als bei der Konfiguration der Eigenschaft auf Aboebene. Wenn Sie nur die Bestätigungsfrist auf Aboebene verwenden, müssen Sie einen Kompromiss zwischen einem niedrigen und einem hohen Wert finden. Ein niedriger Wert erhöht die Wahrscheinlichkeit von Duplikaten und ein hoher Wert verzögert die erneute Zustellung von Nachrichten, bei denen ein Fehler aufgetreten ist. Die Bestimmung des richtigen Werts kann schwierig sein, insbesondere wenn die erwartete Verarbeitungszeit für verschiedene Nachrichten stark variiert.
Weitere Informationen zu den Eigenschaften eines Abos, einschließlich der Bestätigungsfrist, finden Sie unter Abo-Attribute.
Konfiguration der Freigabeverwaltung
Sie können die folgenden Eigenschaften in den allgemeinen Clientbibliotheken konfigurieren, um die Freigabeverwaltung zu steuern.
Maximale Verlängerungsfrist für die Bestätigung Die maximale Zeit, um die die Clientbibliothek die Bestätigungsfrist einer Nachricht mit der Anfrage
modify acknowledgment deadlineverlängern kann. Mit dieser Eigenschaft können Sie festlegen, wie lange die Abonnenten-Clients Nachrichten verarbeiten sollen.Maximale Dauer für jede Verlängerung der Bestätigungsfrist Die maximale Zeit, um die die Bestätigungsfrist für jede der
modify acknowledgment deadlineAnfragen verlängert werden soll. Mit dieser Eigenschaft können Sie festlegen, wie lange Pub/Sub benötigt, um eine Nachricht noch einmal zuzustellen. Die erneute Zustellung erfolgt, wenn der erste Abonnent, der die Nachricht verarbeitet, abstürzt oder fehlerhaft wird und die Anfragemodify acknowledgment deadlinenicht mehr senden kann.Minimale Dauer für jede Verlängerung der Bestätigungsfrist Die minimale Zeit, um die die Bestätigungsfrist für jede der
modify acknowledgment deadlineAnfragen verlängert werden soll. Mit dieser Eigenschaft können Sie die Mindestzeit angeben, die vergehen muss, bevor eine Nachricht noch einmal zugestellt wird.
Es wird nicht garantiert, dass die Bestätigungsfristen eingehalten werden, es sei denn, Sie aktivieren die Funktion „Genau einmal zugestellt“.
Bestätigungsfristen manuell verwalten
Wir empfehlen dringend, die allgemeinen Clientbibliotheken zu verwenden. Wenn diese nicht funktionieren oder Sie den unären Pull verwenden müssen, verlängern Sie die Bestätigungsfristen mit der Anfrage modify acknowledgment deadline.
Die allgemeine C++-Clientbibliothek ist eine Ausnahme, die die Freigabeverwaltung bei Verwendung des unären Pulls bietet. In den folgenden Beispielen wird der unäre Pull mit der Freigabeverwaltung verwendet:
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 API-Referenzdokumentation für Pub/Sub C#.
Java
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Java in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der API-Referenzdokumentation für Pub/Sub Java.
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 API-Referenzdokumentation für Pub/Sub Node.js.
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 API-Referenzdokumentation für Pub/Sub Python.
Ruby
Im folgenden Beispiel wird die Ruby Pub/Sub-Clientbibliothek Version 3 verwendet. Wenn Sie noch die Version 2 verwenden, lesen Sie die Migrationsanleitung zu Version 3. Eine Liste der Ruby-Codebeispiele für Version 2 finden Sie unter Veraltete Codebeispiele.
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Ruby in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der API-Referenzdokumentation für Pub/Sub Ruby.
Nächste Schritte
Weitere Informationen zu den anderen Zustelloptionen, die Sie für ein Abo konfigurieren können:
Nachrichtenfehler mit der Wiederholungsrichtlinie für Abos verarbeiten
Nicht zugestellte Nachrichten an ein Thema für unzustellbare Nachrichten weiterleiten
Zuvor bestätigte Nachrichten wiedergeben oder Nachrichten löschen