Einrichtung von Long Polling in Amazon SQS - 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.

Einrichtung von Long Polling in Amazon SQS

Ist die Wartezeit für die ReceiveMessage-API-Aktion größer als 0, ist eine lange Abfrage wirksam. Die maximale Wartezeit für lange Abfragen beträgt 20 Sekunden. Mithilfe von Langabfragen können Sie die Kosten für die Verwendung von Amazon SQS reduzieren, indem Sie die Anzahl der leeren Antworten (wenn bei einer ReceiveMessage-Anfrage keine Nachrichten vorliegen) und fälschlicherweise leeren Antworten (wenn Nachrichten vorliegen, diese aber nicht in einer Antwort enthalten sind) eliminieren. Weitere Informationen finden Sie unter Kurz- und Langabfragen in Amazon SQS.

Um eine optimale Nachrichtenverarbeitung sicherzustellen, wenden Sie die folgenden Strategien an:

  • In den meisten Fällen können Sie die ReceiveMessage-Wartezeit auf 20 Sekunden setzen. Wenn 20 Sekunden für Ihre Anwendung zu lang ist, legen Sie eine kürzere ReceiveMessage-Wartezeit fest (mindestens 1 Sekunde). Wenn Sie kein AWS SDK für den Zugriff auf Amazon SQS verwenden oder wenn Sie ein AWS SDK für eine kürzere Wartezeit konfigurieren, müssen Sie Ihren Amazon SQS SQS-Client möglicherweise ändern, um entweder längere Anfragen zuzulassen oder eine kürzere Wartezeit für lange Abfragen zu verwenden.

  • Wenn Sie Langabfragen für mehrere Warteschlangen implementieren, verwenden Sie einen Thread für jede Warteschlange statt eines einzelnen Threads für alle Warteschlangen. Durch die Verwendung eines einzelnen Threads für jede Warteschlange kann Ihre Anwendung die Nachrichten in jeder der Warteschlangen verarbeiten, sobald diese verfügbar sind, während bei Verwendung eines einzelnen Threads für die Abfrage mehrerer Warteschlangen dazu führen könnte, dass Ihre Anwendung die Nachrichten nicht verarbeiten kann, die in anderen Warteschlangen zur Verfügung stehen, während die Anwendung auf die Warteschlange wartet (bis zu 20 Sekunden), die keine verfügbaren Nachrichten enthält.

Wichtig

Um HTTP-Fehler zu vermeiden, stellen Sie sicher, dass das HTTP-Reaktions-Timeout für ReceiveMessage-Anforderungen länger ist als der WaitTimeSeconds-Parameter. Weitere Informationen finden Sie unter. ReceiveMessage