Envío, recepción y eliminación de mensajes de Amazon SQS - AWS SDK para Java 1.x

La AWS SDK para Java 1.x se alcanzó end-of-support el 31 de diciembre de 2025. Le recomendamos que migre a AWS SDK for Java 2.x para seguir recibiendo nuevas características, mejoras de disponibilidad y actualizaciones de seguridad.

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.

Envío, recepción y eliminación de mensajes de Amazon SQS

En este tema se describe cómo enviar, recibir y eliminar mensajes de Amazon SQS. Los mensajes se envían siempre a través de una cola de SQS.

Enviar un mensaje

Añada un único mensaje a una cola de Amazon SQS llamando al método sendMessage del cliente AmazonSQS. Proporcione un objeto SendMessageRequest que contenga la URL de la cola, el cuerpo del mensaje y el valor de retraso opcional (en segundos).

Importaciones

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

Código de

SendMessageRequest send_msg_request = new SendMessageRequest() .withQueueUrl(queueUrl) .withMessageBody("hello world") .withDelaySeconds(5); sqs.sendMessage(send_msg_request);

Consulte el ejemplo completo en GitHub.

Enviar varios mensajes a la vez

Puede enviar más de un mensaje en una única solicitud. Para enviar varios mensajes, utilice el método sendMessageBatch del cliente AmazonSQS, que toma un objeto SendMessageBatchRequest con la URL de la cola y una lista de mensajes (un objeto SendMessageBatchRequestEntry para cada uno) que se van a enviar. También puede definir un valor de retraso opcional para cada mensaje.

Importaciones

import com.amazonaws.services.sqs.model.SendMessageBatchRequest; import com.amazonaws.services.sqs.model.SendMessageBatchRequestEntry;

Código de

SendMessageBatchRequest send_batch_request = new SendMessageBatchRequest() .withQueueUrl(queueUrl) .withEntries( new SendMessageBatchRequestEntry( "msg_1", "Hello from message 1"), new SendMessageBatchRequestEntry( "msg_2", "Hello from message 2") .withDelaySeconds(10)); sqs.sendMessageBatch(send_batch_request);

Consulte el ejemplo completo en GitHub.

Recibir mensajes

Recupere todos los mensajes que se encuentran actualmente en la cola llamando al método receiveMessage del cliente AmazonSQS, pasando la URL de la cola. Los mensajes se devuelven como una lista de objetos Message.

Importaciones

import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.AmazonSQSException; import com.amazonaws.services.sqs.model.SendMessageBatchRequest;

Código de

List<Message> messages = sqs.receiveMessage(queueUrl).getMessages();

Eliminar mensajes después de su recepción

Tras recibir un mensaje y procesar su contenido, elimine el mensaje de la cola enviando el identificador de recepción y la URL de la cola del mensaje al método deleteMessage de AmazonSQS.

Código de

for (Message m : messages) { sqs.deleteMessage(queueUrl, m.getReceiptHandle()); }

Consulte el ejemplo completo en GitHub.

Más información