Gestion du délai de visibilité dans Amazon SQS - AWS SDK for JavaScript

Nous avons annoncé la sortie end-of-support de la AWS SDK for JavaScript v2. Nous vous recommandons de migrer vers la AWS SDK for JavaScript version 3. Pour les dates, les détails supplémentaires et les informations sur la façon de migrer, reportez-vous à l'annonce associée.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Gestion du délai de visibilité dans Amazon SQS

JavaScript code example that applies to Node.js execution

Cet exemple de code Node.js présente :

  • Comment spécifier l'intervalle de temps pendant lequel les messages reçus par une file d'attente ne sont pas visibles.

Scénario

Dans cet exemple, le module Node.js est utilisé pour gérer le délai de visibilité. Le module Node.js utilise le SDK pour gérer le délai JavaScript d'expiration de visibilité en utilisant cette méthode de la classe AWS.SQS client :

Pour plus d'informations sur le délai de visibilité d'Amazon SQS, consultez Visibility Timeout dans le manuel Amazon Simple Queue Service Developer Guide.

Tâches prérequises

Pour configurer et exécuter cet exemple, vous devez d'abord :

Modification du délai de visibilité

Créez un module Node.js nommé sqs_changingvisibility.js. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à Amazon Simple Queue Service, créez un objet AWS.SQS de service. Recevoir le message de la file d'attente.

À la réception du message de la file d'attente, créez un objet JSON contenant les paramètres obligatoires pour définir le délai d'expiration, y compris l'URL de la file d'attente contenant le message, la valeur ReceiptHandle retournée lorsque le message a été reçu, et le nouveau délai d'expiration en secondes. Appelez la méthode 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"); } } });

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

node sqs_changingvisibility.js

Cet exemple de code se trouve ici sur GitHub.