Ich arbeite an einem Projekt, in dem ich ein Amazon verwenden möchte SQS-Verzögerungswarteschlange .
Ich habe ein bisschen Schwierigkeiten, genau zu verstehen, was mit "Inflight" -Nachrichten gemeint ist.
Es gibt eine Notiz in der Dokumentation, die besagt:
Hinweis
Es gibt ein Limit von 120.000 für die Anzahl der Inflight-Nachrichten pro Warteschlange. Nachrichten sind inflight, nachdem sie von der Warteschlange, wurde aber noch nicht aus der Warteschlange gelöscht. Wenn Sie das erreichen 120.000 Limit, erhalten Sie eine OverLimit Fehlermeldung von Amazon SQS. Um zu vermeiden, das Limit zu erreichen, sollten Sie die Nachrichten löschen aus der Warteschlange, nachdem sie verarbeitet wurden. Sie können auch erhöhen die Anzahl der Warteschlangen, die Sie zum Verarbeiten der Nachrichten verwenden.
Aber ich bin mir nicht ganz sicher, was als "von der Warteschlange empfangen" gilt. Wo wird im Flussdiagramm eine Nachricht von der Warteschlange "empfangen"?
Ich werde viele Nachrichten bewusst verzögert (im ersten blauen Balken des Diagramms) haben, aber nicht viele in der "Sichtbarkeits-Timeout" -Phase (zweiter blauer Balken).
Zählen beide blauen Balken als "Inflight" -Nachrichten? Oder ist eine Nachricht nur "inflight", nachdem sie von einer ReceiveMessage
-Anforderung (rechts neben "Nachricht zurückgegeben" am Ende des Diagramms) "empfangen" wurde?
Nachrichten, die in eine Verzögerungswarteschlange fallen, werden nicht sofort als "In Flight" gezählt, da sie für alle Benutzer unsichtbar sind. Sie werden nicht als "Verfügbar" oder "Im Flug" gezählt, sie sind einfach nicht für Sie sichtbar.
Sie können dies mit einem einfachen Experiment in der AWS SQS-Konsole überprüfen:
Wie die Dokumentation sagt, sind Nachrichten "In Flight", nachdem sie empfangen wurden (während sie von einer Anwendung bearbeitet werden), aber bevor sie gelöscht wurden. Wenn sie nicht gelöscht werden, wenn die Anwendung mit ihnen fertig ist, kehren sie in den Zustand "Verfügbar" zurück.
Sie können dies mit einem zweiten Experiment in der AWS SQS-Konsole überprüfen:
Da Ihre "In Flight" -Nachrichten Nachrichten sind, die derzeit von Ihrer Anwendung verarbeitet werden, sollte die Nachrichtentiefe der Warteschlange in dieser Spalte nicht wirklich sehr groß werden. Löschen Sie Ihre Nachrichten, nachdem Sie sie bearbeitet haben (oder versuchen Sie es erneut - & gt; behandeln Sie sie dann und löschen / verschieben Sie sie in eine andere Warteschlange, um eine Ausnahme zu verarbeiten), und Sie sollten einverstanden sein.
Tags und Links queue amazon-web-services amazon-sqs delay