Wir haben das Kommende end-of-support für AWS SDK for JavaScript v2 angekündigt
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
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:
Installieren Sie Node.js. Weitere Informationen über die Installation von Node.js finden Sie auf der Node.js-Website
. Erstellen Sie eine freigegebene Konfigurationsdatei mit Ihren Anmeldeinformationen. Weitere Informationen zum Bereitstellen einer Datei mit gemeinsam genutzten Anmeldeinformationen finden Sie unter Laden der Anmeldeinformationen in Node.js aus der freigegebenen Anmeldeinformationsdatei.
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