Administración del tiempo de espera de visibilidad en Amazon SQS - AWS SDK for JavaScript

LaAWS SDK for JavaScript versión 3 (v3) es una reescritura de la versión 2 con algunas funciones nuevas y excelentes, incluida la arquitectura modular. Para obtener más información, consulte la Guía para desarrolladores de la versiónAWS SDK for JavaScript 3.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Administración del tiempo de espera de visibilidad en Amazon SQS

JavaScript code example that applies to Node.js execution

Este ejemplo de código de Node.js muestra:

  • Cómo especificar el intervalo de tiempo durante el cual los mensajes que una cola recibe no son visibles.

El escenario

En este ejemplo, se utiliza un módulo de Node.js para administrar el tiempo de espera de visibilidad. El módulo de Node.js usa el SDK para JavaScript con el fin de administrar tiempo de espera de visibilidad mediante este método delAWS.SQSclase de cliente:

Para obtener más información acerca del tiempo de espera de visibilidad de Amazon SQS, consulte.Tiempo de espera de visibilidaden laGuía para desarrolladores de Amazon Simple Queue Service.

Tareas previas necesarias

Para configurar y ejecutar este ejemplo, primero debe completar estas tareas:

Cambio del tiempo de espera de visibilidad

Cree un módulo de Node.js con el nombre de archivo sqs_changingvisibility.js. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para acceder a Amazon Simple Queue Service, cree unAWS.SQSobjeto de servicio. Recibir el mensaje de la cola

Al recibir el mensaje de la cola, cree un objeto JSON que contenga los parámetros necesarios para configurar el tiempo de espera, como la dirección URL de la cola que contiene el mensaje, el ReceiptHandle que se devuelve cuando el mensaje se recibe y el nuevo tiempo de espera en segundos. Llame al método 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') } } })

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

node sqs_changingvisibility.js

Este código de muestra se puede encontrar aquí en GitHub.