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
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
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
Más información
-
Cómo funcionan las colas de Amazon SQS en la Guía para desarrolladores de Amazon SQS
-
SendMessage en la referencia de la API de Amazon SQS
-
SendMessageBatch en la referencia de la API de Amazon SQS
-
ReceiveMessage en la Referencia de la API de Amazon SQS
-
DeleteMessage en la Referencia de la API de Amazon SQS