View a markdown version of this page

Gestione del timeout visibilità in Amazon SQS - AWS SDK per JavaScript

La versione AWS SDK per JavaScript v2 ha raggiunto la fine del supporto. Ti consigliamo di eseguire la migrazione alla v3. AWS SDK per JavaScript Per ulteriori dettagli e informazioni su come eseguire la migrazione, consulta questo annuncio. https://aws.amazon.com/blogs/developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/

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à.

Gestione del timeout visibilità in Amazon SQS

JavaScript code example that applies to Node.js execution

Questo esempio di Node.js codice mostra:

  • Come specificare l'intervallo di tempo durante il quale i messaggi ricevuti da una coda non sono visibili.

Lo scenario

In questo esempio, viene utilizzato un Node.js modulo per gestire il timeout di visibilità. Il Node.js modulo utilizza l'SDK per JavaScript gestire il timeout di visibilità utilizzando questo metodo della AWS.SQS classe client:

Per ulteriori informazioni sul timeout di visibilità di Amazon SQS, consulta Visibility Timeout nella Amazon Simple Queue Service Developer Guide.

Attività prerequisite

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

Modifica del timeout visibilità

Crea un Node.js modulo con il nome del filesqs_changingvisibility.js. Assicurati di configurare il kit SDK come mostrato in precedenza. Per accedere ad Amazon Simple Queue Service, crea un oggetto di AWS.SQS servizio. Ricevere il messaggio dalla coda.

Alla ricezione del messaggio dalla coda, crea un oggetto JSON contenente i parametri necessari per impostare il timeout, inclusi l'URL della coda che contiene il messaggio, il valore ReceiptHandle restituito quando il messaggio è stato ricevuto e il nuovo timeout in secondi. Chiama il metodo changeMessageVisibility.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region to us-west-2 AWS.config.update({ region: "us-west-2" }); // Create the SQS service object var sqs = new AWS.SQS({ apiVersion: "2012-11-05" }); var queueURL = "https://sqs.REGION.amazonaws.com/ACCOUNT-ID/QUEUE-NAME"; var params = { AttributeNames: ["SentTimestamp"], MaxNumberOfMessages: 1, MessageAttributeNames: ["All"], QueueUrl: queueURL, }; sqs.receiveMessage(params, function (err, data) { if (err) { console.log("Receive Error", err); } else { // Make sure we have a message if (data.Messages != null) { var visibilityParams = { QueueUrl: queueURL, ReceiptHandle: data.Messages[0].ReceiptHandle, VisibilityTimeout: 20, // 20 second timeout }; sqs.changeMessageVisibility(visibilityParams, function (err, data) { if (err) { console.log("Delete Error", err); } else { console.log("Timeout Changed", data); } }); } else { console.log("No messages to change"); } } });

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

node sqs_changingvisibility.js

Questo codice di esempio può essere trovato qui su. GitHub