Problembehandlung bei Nachrichten, die bei einem Amazon SQS ReceiveMessage SQS-API-Aufruf nicht zurückgegeben wurden - Amazon Simple Queue Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Problembehandlung bei Nachrichten, die bei einem Amazon SQS ReceiveMessage SQS-API-Aufruf nicht zurückgegeben wurden

In den folgenden Themen werden die häufigsten Ursachen behandelt, warum eine Amazon SQS SQS-Nachricht möglicherweise nicht an Verbraucher zurückgesendet wird, und wie diese Probleme behoben werden können. Weitere Informationen finden Sie unter Warum kann ich keine Nachrichten aus meiner Amazon SQS SQS-Warteschlange empfangen? im AWS Knowledge Center-Leitfaden.

Leere Warteschlange

Um festzustellen, ob eine Warteschlange leer ist, rufen Sie die ReceiveMessageAPI mithilfe von langen Abfragen auf. Sie können auch die ApproximateNumberOfMessagesDelayed CloudWatch Metriken ApproximateNumberOfMessagesVisibleApproximateNumberOfMessagesNotVisible, und verwenden. Wenn alle Metrikwerte für mehrere Minuten auf 0 gesetzt sind, wird die Warteschlange als leer betrachtet.

Während des Fluges wurde das Limit erreicht

Wenn Sie Long Polling verwenden und das In-Flight-Limit der Warteschlange (standardmäßig 20000 für FIFO, 120000 für Standard) überschritten wird, gibt Amazon SQS keine Fehlermeldungen zurück, die die Kontingentgrenzen überschreiten.

Verzögerung der Nachricht

Wenn die Amazon SQS SQS-Warteschlange als Verzögerungswarteschlange konfiguriert ist oder die Nachrichten mit Nachrichtentimern gesendet wurden, sind die Nachrichten erst sichtbar, wenn die Verzögerungszeit abgelaufen ist. Um zu überprüfen, ob eine Warteschlange als Verzögerungswarteschlange konfiguriert ist, verwenden Sie das GetQueueAttributesDelaySecondsAPI-Attribut oder verwenden Sie die Warteschlangenkonsole unter Delivery Delay. Prüfen Sie ApproximateNumberOfMessagesDelayed CloudWatch anhand der Metrik, ob Nachrichten verzögert sind.

Die Nachricht ist im Flug

Wenn ein anderer Nutzer die Nachricht abgefragt hat, ist die Nachricht während des Sichtbarkeitszeitraums entweder im Umlauf oder unsichtbar. Bei den zusätzlichen Umfragen wird möglicherweise ein leerer Empfang zurückgegeben. Überprüfen Sie die CloudWatch Metrik ApproximateNumberOfMessagesSichtbar, um die Anzahl der Nachrichten zu ermitteln, die für den Empfang verfügbar sind. Wenn bei FIFO-Warteschlangen eine Nachricht mit der Nachrichtengruppen-ID gesendet wird, werden keine Nachrichten mehr zurückgegeben, es sei denn, Sie löschen die Nachricht oder sie wird sichtbar. Das liegt daran, dass die Reihenfolge der Nachrichten in einer FIFO-Warteschlange auf Nachrichtengruppenebene beibehalten wird.

Abfragemethode

Wenn Sie Short-Polling verwenden (WaitTimeSeconds ist 0), nimmt Amazon SQS eine Stichprobe von einer Teilmenge seiner Server vor und gibt nur Nachrichten von diesen Servern zurück. Daher erhalten Sie die Nachrichten möglicherweise nicht, auch wenn sie für den Empfang verfügbar sind. Bei nachfolgenden Umfrageanfragen werden die Nachrichten zurückgegeben.

Wenn Sie lange Abfragen verwenden, fragt Amazon SQS alle Server ab und sendet eine Antwort, nachdem mindestens eine verfügbare Nachricht erfasst wurde, und zwar bis zur angegebenen Höchstanzahl. Wenn der Wert für ReceiveMessage WaitTimeSekunden zu niedrig ist, erhalten Sie möglicherweise nicht alle verfügbaren Nachrichten.