Aktivieren von Langabfragen in Amazon SQS - AWS SDK for JavaScript

Wir haben das Kommende end-of-support für AWS SDK for JavaScript v2 angekündigt. Wir empfehlen Ihnen, auf AWS SDK for JavaScript Version 3 zu migrieren. Termine, weitere Details und Informationen zur Migration finden Sie in der verlinkten Ankündigung.

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.

Aktivieren von Langabfragen in Amazon SQS

JavaScript code example that applies to Node.js execution

Dieses Node.js-Codebeispiel zeigt:

  • Aktivieren von Langabfragen für eine neuerstellte Warteschlange

  • Aktivieren von Langabfragen für eine vorhandene Warteschlange

  • Aktivieren von Langabfragen bei Nachrichtenempfang

Das Szenario

Lange Abfragen reduzieren die Anzahl leerer Antworten, indem Amazon SQS eine bestimmte Zeit warten kann, bis eine Nachricht in der Warteschlange verfügbar ist, bevor eine Antwort gesendet wird. Durch Langabfragen lassen sich außerdem falsch leere Antworten vermeiden, indem die Anfrage statt an eine Auswahl an Servern an alle Server gesendet wird. Zum Aktivieren von Langabfragen müssen Sie für empfangene Nachrichten eine Wartezeit ungleich Null angeben. Dies können Sie durch Festlegen des ReceiveMessageWaitTimeSeconds-Parameters einer Warteschlange oder des WaitTimeSeconds-Parameters für eine Nachricht bei deren Empfang vornehmen.

In diesem Beispiel wird eine Reihe von Node.js-Modulen zum Aktivieren von Langabfragen verwendet. Die Module von Node.js verwenden das SDK JavaScript , um lange Abfragen mithilfe der folgenden Methoden der AWS.SQS Client-Klasse zu ermöglichen:

Weitere Informationen zu Amazon SQS Long Polling finden Sie unter Long Polling im Amazon Simple Queue Service Developer Guide.

Erforderliche Aufgaben

Zum Einrichten und Ausführen dieses Beispiels müssen Sie zunächst diese Aufgaben abschließen:

Aktivieren der Langabfrage beim Erstellen einer Warteschlange

Erstellen Sie ein Node.js-Modul mit dem Dateinamen sqs_longpolling_createqueue.js. Stellen Sie sicher, dass Sie das SDK, wie zuvor dargestellt, konfigurieren. Um auf Amazon SQS zuzugreifen, erstellen Sie ein AWS.SQS Serviceobjekt. Erstellen Sie ein JSON-Objekt, das die erforderlichen Parameter zum Erstellen einer Warteschlange enthält, einschließlich eines Wertes ungleich Null für den ReceiveMessageWaitTimeSeconds-Parameter. Rufen Sie die createQueue-Methode auf. Die Langabfrage ist nun für die Warteschlange aktiviert.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the SQS service object var sqs = new AWS.SQS({ apiVersion: "2012-11-05" }); var params = { QueueName: "SQS_QUEUE_NAME", Attributes: { ReceiveMessageWaitTimeSeconds: "20", }, }; sqs.createQueue(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.QueueUrl); } });

Um das Beispiel auszuführen, geben Sie Folgendes in der Befehlszeile ein.

node sqs_longpolling_createqueue.js

Diesen Beispielcode finden Sie hier auf GitHub.

Aktivieren der Langabfrage für eine vorhandene Warteschlange

Erstellen Sie ein Node.js-Modul mit dem Dateinamen sqs_longpolling_existingqueue.js. Stellen Sie sicher, dass Sie das SDK, wie zuvor dargestellt, konfigurieren. Um auf Amazon Simple Queue Service zuzugreifen, erstellen Sie ein AWS.SQS Serviceobjekt. Erstellen Sie ein JSON-Objekt, das die erforderlichen Parameter zum Festlegen der Warteschlangenattribute enthält. Dazu gehören ein Wert ungleich Null für die ReceiveMessageWaitTimeSeconds-Eigenschaft und die URL der Warteschlange. Rufen Sie die setQueueAttributes-Methode auf. Die Langabfrage ist nun für die Warteschlange aktiviert.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the SQS service object var sqs = new AWS.SQS({ apiVersion: "2012-11-05" }); var params = { Attributes: { ReceiveMessageWaitTimeSeconds: "20", }, QueueUrl: "SQS_QUEUE_URL", }; sqs.setQueueAttributes(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

Um das Beispiel auszuführen, geben Sie Folgendes in der Befehlszeile ein.

node sqs_longpolling_existingqueue.js

Diesen Beispielcode finden Sie hier auf GitHub.

Aktivieren von Langabfragen beim Nachrichteneingang

Erstellen Sie ein Node.js-Modul mit dem Dateinamen sqs_longpolling_receivemessage.js. Stellen Sie sicher, dass Sie das SDK, wie zuvor dargestellt, konfigurieren. Um auf Amazon Simple Queue Service zuzugreifen, erstellen Sie ein AWS.SQS Serviceobjekt. Erstellen Sie ein JSON-Objekt, das die erforderlichen Parameter zum Empfangen von Nachrichten enthält. Dazu gehören ein Wert ungleich Null für die WaitTimeSeconds-Eigenschaft und die URL der Warteschlange. Rufen Sie die receiveMessage-Methode auf.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the SQS service object var sqs = new AWS.SQS({ apiVersion: "2012-11-05" }); var queueURL = "SQS_QUEUE_URL"; var params = { AttributeNames: ["SentTimestamp"], MaxNumberOfMessages: 1, MessageAttributeNames: ["All"], QueueUrl: queueURL, WaitTimeSeconds: 20, }; sqs.receiveMessage(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

Um das Beispiel auszuführen, geben Sie Folgendes in der Befehlszeile ein.

node sqs_longpolling_receivemessage.js

Diesen Beispielcode finden Sie hier auf GitHub.