2016-11-17 3 views
1

Aus verschiedenen Gründen sind wir auf Szenarien gestoßen, in denen wir Push-Benachrichtigungen aus einem Google Cloud Platform (GCP) Pubsub-Abonnement "pausieren" und sie einfach in die Warteschlange stellen und dann "pausieren" und Pushs ohne fortsetzen lassen möchten Verliere irgendwelche Nachrichten.Wie kann ich ein GCP Pubsub Push-Abonnement pausieren?

  1. Ist dies ein eingebautes Feature?
  2. Können Sie einen Workaround vorschlagen?
+0

Ich bin nicht als [PubSub api Feature] (https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions#PushConfig) – successhawk

Antwort

0

Gute Nachrichten. Ich stolperte über die Antwort auf https://cloud.google.com/pubsub/docs/subscriber#receive_push

Stopping/Pausieren und Fortsetzen der Push-Verteilungs

Um den Empfang von Nachrichten für ein Abonnement unterbrechen, senden modifyPushConfigRequest zu die Push-Endpunkt in einem leeren String gesetzt. Die Nachrichten werden sich ansammeln, werden jedoch nicht zugestellt. Um wieder aufzunehmen Nachrichten, senden Sie eine andere Anfrage modifyPushConfigRequest mit einem gefüllten Push-Endpunkt.

Um die Zustellung dauerhaft zu stoppen, sollten Sie das Abonnement löschen.

0

Ich glaube nicht, dass es so eine Pause-Funktion gibt. Stattdessen können Sie abfragende Consumers verwenden, und Sie können das Abrufen anhalten, wenn Sie pausieren müssen. Das ist alles, woran ich denken kann.

0

Es gibt keine "Pause" -Funktion bei Push-Abonnements. Wenn Sie können, könnten Sie switching to a pull subscription betrachten. Dann können Sie genau steuern, wann Sie Nachrichten anfordern.

Wenn Sie nicht zu einem Pullabonnement wechseln können, können Sie einfach eine Fehlerantwort zurückgeben, wenn Sie Nachrichten empfangen oder Ihren Endpunkt nicht verfügbar machen. Google Cloud Pub/Sub schaltet die erneute Zustellung von Nachrichten ab und wartet zwischen den Versuchen bis zu 10 Sekunden. Es wird versuchen, Nachrichten für 7 Tage erneut zuzustellen. Je nachdem, wie lange Sie den Nachrichtenverbrauch pausieren müssen, ist dies möglicherweise eine praktikable Option.

Wenn Sie nicht häufig zwischen "pausiert" und "nicht pausiert" wechseln müssen, weniger als einmal pro Minute, können Sie dieses Verhalten erreichen, indem Sie Ihren Abonnenten zu einem Pull-Abonnement wechseln (und nicht ziehen) Pausieren Sie das Verhalten und wechseln Sie dann zurück zu einem Push-Abonnement, um erneut Nachrichten zu empfangen.

+0

Was das sehende geschieht Nachricht nach 7 Tagen? – eCeleritas

+0

Es wird gelöscht. Google Cloud Pub/Sub speichert unbestätigte Nachrichten sieben Tage lang. –

+0

Danke @ KamalAboul-Hosn. Ich sehe das in der Dokumentation, aber eine Sache, die nicht klar ist, ist, ob die "Wiederholung" pro Nachricht oder pro Abonnement ist. Ich glaube, es ist pro Nachricht, und das ist einer der Gründe, warum unsere Rechnung aufgrund vieler Wiederholungen hochläuft und wir werden pro API-Aufruf belastet. 1 Million Nachrichten, die sich in einer Warteschlange befinden, wiederholen alle 10 Sekunden und summieren sich schnell. Wir brauchen wirklich eine "Pause" -Funktion, und es wäre auch nett, die "Wiederholungsrichtlinie" konfigurieren zu können. – successhawk

Verwandte Themen