Uso de colas de mensajes de Amazon SQS - AWS SDK for Java 1.x

Anunciamos la próxima versión end-of-support para AWS SDK for Java (v1). Se recomienda que migre a AWS SDK for Java versión 2. Para ver las fechas, los detalles adicionales y la información sobre cómo realizar la migración, consulte el anuncio enlazado.

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.

Uso de colas de mensajes de Amazon SQS

Una cola de mensajes es el contenedor lógico utilizado para enviar mensajes de forma fiable en Amazon SQS. Existen dos tipos de colas: estándar y primero en entrar, primero en salir (FIFO). Para obtener más información sobre las colas y las diferencias entre estos tipos, consulte la Guía para desarrolladores de Amazon SQS.

En este tema se describe cómo crear, mostrar, eliminar y obtener la dirección URL de un cola de Amazon SQS mediante AWS SDK for Java.

Creación de una cola

Use el método createQueue del cliente AmazonSQS, proporcionando un objeto CreateQueueRequest que describa los parámetros de la cola.

Importaciones

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.AmazonSQSException; import com.amazonaws.services.sqs.model.CreateQueueRequest;

Code

AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); CreateQueueRequest create_request = new CreateQueueRequest(QUEUE_NAME) .addAttributesEntry("DelaySeconds", "60") .addAttributesEntry("MessageRetentionPeriod", "86400"); try { sqs.createQueue(create_request); } catch (AmazonSQSException e) { if (!e.getErrorCode().equals("QueueAlreadyExists")) { throw e; } }

Puede utilizar el formato simplificado createQueue, que solo necesita el nombre de una cola, para crear una cola estándar.

sqs.createQueue("MyQueue" + new Date().getTime());

Consulte el ejemplo completo en GitHub.

Mostrar colas

Para enumerar las colas de Amazon SQS de su cuenta, llame al método listQueues del cliente AmazonSQS.

Importaciones

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.ListQueuesResult;

Code

AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); ListQueuesResult lq_result = sqs.listQueues(); System.out.println("Your SQS Queue URLs:"); for (String url : lq_result.getQueueUrls()) { System.out.println(url); }

El uso de la sobrecarga listQueues sin parámetros devuelve todas las colas. Puede filtrar los resultados devueltos pasando un objeto ListQueuesRequest.

Importaciones

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.ListQueuesRequest;

Code

AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); String name_prefix = "Queue"; lq_result = sqs.listQueues(new ListQueuesRequest(name_prefix)); System.out.println("Queue URLs with prefix: " + name_prefix); for (String url : lq_result.getQueueUrls()) { System.out.println(url); }

Consulte el ejemplo completo en GitHub.

Obtener la URL de una cola

Llame al método getQueueUrl del cliente AmazonSQS.

Importaciones

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder;

Code

AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); String queue_url = sqs.getQueueUrl(QUEUE_NAME).getQueueUrl();

Consulte el ejemplo completo en GitHub.

Eliminar una cola

Proporcione la URL de la cola al método del cliente AmazonSQS.

Importaciones

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder;

Code

AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); sqs.deleteQueue(queue_url);

Consulte el ejemplo completo en GitHub.

Más información