Abbiamo annunciato
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
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à:
Installa Node.js. Per ulteriori informazioni sull'installazione di Node.js, consulta il sito Web Node.js
. Creazione di un file di configurazione condiviso con le credenziali utente. Per ulteriori informazioni sulla fornitura di un file delle credenziali condiviso, consulta Caricamento delle credenziali su Node.js dal file delle credenziali condiviso.
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
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
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