Abilitazione del polling lungo in Amazon SQS - AWS SDK for JavaScript

Abbiamo annunciato l'imminente uscita end-of-support per la AWS SDK for JavaScript v2. Ti consigliamo di migrare alla AWS SDK for JavaScript v3. Per date, dettagli aggiuntivi e informazioni su come effettuare la migrazione, consulta l'annuncio collegato.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Abilitazione del polling lungo in Amazon SQS

JavaScript code example that applies to Node.js execution

Questo esempio di codice di Node.js illustra:

  • Come abilitare il long polling per una nuova coda

  • Come abilitare il long polling per una coda esistente

  • Come abilitare il long polling alla ricezione di un messaggio

Lo scenario

Il polling prolungato riduce il numero di risposte vuote consentendo ad Amazon SQS di attendere un periodo di tempo specificato affinché un messaggio diventi disponibile nella coda prima di inviare una risposta. Inoltre, il polling lungo elimina le risposte vuote false creando delle query per tutti i server invece di effettuarne il campionamento. Per abilitare il polling lungo, occorre specificare un tempo di attesa diverso da zero per i messaggi ricevuti. A tale scopo puoi impostare il parametro ReceiveMessageWaitTimeSeconds di una coda o impostare il parametro WaitTimeSeconds su un messaggio quando viene ricevuto.

In questo esempio, viene utilizzata una serie di moduli Node.js per abilitare il long polling. I moduli Node.js utilizzano l'SDK per JavaScript abilitare il polling lungo utilizzando questi metodi della classe client: AWS.SQS

Per ulteriori informazioni sul long polling di Amazon SQS, consulta Long Polling nella Amazon Simple Queue Service Developer Guide.

Attività prerequisite

Per configurare ed eseguire questo esempio, è necessario completare queste attività:

Abilitazione del long polling alla creazione di una coda

Crea un modulo Node.js con il nome del file sqs_longpolling_createqueue.js. Assicurati di configurare il kit SDK come mostrato in precedenza. Per accedere ad Amazon SQS, crea un oggetto di AWS.SQS servizio. Crea un oggetto JSON contenente i parametri necessari per creare una coda, incluso un valore diverso da zero per il parametro ReceiveMessageWaitTimeSeconds. Chiama il metodo createQueue. Il long polling viene quindi abilitato per la coda.

// 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); } });

Digita la seguente riga di comando per eseguire l'esempio.

node sqs_longpolling_createqueue.js

Questo codice di esempio può essere trovato qui. GitHub

Abilitazione del long polling su una coda esistente

Crea un modulo Node.js con il nome del file sqs_longpolling_existingqueue.js. Assicurati di configurare il kit SDK come mostrato in precedenza. Per accedere ad Amazon Simple Queue Service, crea un oggetto AWS.SQS servizio. Crea un oggetto JSON contenente i parametri necessari per impostare gli attributi della coda, inclusi un valore diverso da zero per il parametro ReceiveMessageWaitTimeSeconds e l'URL della coda. Chiama il metodo setQueueAttributes. Il long polling viene quindi abilitato per la coda.

// 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); } });

Digita la seguente riga di comando per eseguire l'esempio.

node sqs_longpolling_existingqueue.js

Questo codice di esempio può essere trovato qui. GitHub

Abilitazione del long polling alla ricezione del messaggio

Crea un modulo Node.js con il nome del file sqs_longpolling_receivemessage.js. Assicurati di configurare il kit SDK come mostrato in precedenza. Per accedere ad Amazon Simple Queue Service, crea un oggetto AWS.SQS servizio. Crea un oggetto JSON contenente i parametri necessari per ricevere messaggi, inclusi un valore diverso da zero per il parametro WaitTimeSeconds e l'URL della coda. Chiama il metodo receiveMessage.

// 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); } });

Digita la seguente riga di comando per eseguire l'esempio.

node sqs_longpolling_receivemessage.js

Questo codice di esempio può essere trovato qui. GitHub