2017-09-07 3 views
0

Ich hatte eine Rand-Fall angezeigt und einige Nachrichten stecken in einer Schleife zu versuchen, gezogen und versagt beim Parsen. Wie kann ich all diese Nachrichten loswerden? Ich habe versucht - Auto-Ack mit dem Befehl gcloud (gcloud beta pubsub subscriptions pull <SUBSCRIPTION> --auto-ack), aber sie werden immer noch angezeigt.Der beste Weg, Pubsub Abonnement zu löschen?

irgendwelche Ideen?

Antwort

0

--auto-ack sollte funktionieren, es sei denn, Ihr Abonnent läuft aktiv und daher möglicherweise auf diese Nachrichten halten, d. H. Die acknowledgement deadline hat nicht bestanden. In diesem Fall werden die Nachrichten nicht an das Tool gcloud übermittelt, da Ihr Abonnent an ihnen festhält. Sie haben ein paar Optionen:

  1. Ihre Teilnehmer herunterfahren, warten, bis die ack Frist abgelaufen ist, und führen Sie dann den Befehl gcloud Sie angegeben haben. Die betreffenden Nachrichten sollten dann vom Befehlszeilentool empfangen und bestätigt werden. Der Befehl gibt die empfangenen Nachrichten aus. Sie können auch die Option --max-messages als Standardeinstellung auf 1 setzen.
  2. Aktualisieren Sie Ihren Abonnenten für die Verarbeitung dieser Nachrichten, die nicht analysiert werden können. Sie könnten entscheiden, sie zu bestätigen, oder Sie könnten ein separates Thema für solche Nachrichten erstellen, die fehlgeschlagenen Nachrichten zu diesem Thema veröffentlichen und dann die Nachrichten bestätigen. Auf diese Weise können Sie die Nachrichten zu diesem anderen Thema (mit einem anderen Abonnenten/Abonnement) noch überprüfen, ohne Ihren Hauptteilnehmer zu behindern. Dies ist allgemein bekannt als dead letter queue.