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.
Enviar, recibir y eliminar mensajes de Amazon Simple Queue Service
Un mensaje es un segmento de datos que los componentes distribuidos pueden enviar y recibir. Los mensajes se envían siempre a través de una cola de SQS.
La variable sqsClient
que se utiliza en los ejemplos siguientes se puede crear a partir del siguiente fragmento.
SqsClient sqsClient = SqsClient.create();
Al crear una SqsClient
mediante el create()
método estático, el SDK configura la región mediante la cadena de proveedores de regiones predeterminada y las credenciales mediante la cadena de proveedores de credenciales predeterminada.
Enviar un mensaje
Agrega un solo mensaje a una Amazon Simple Queue Service cola llamando al método SqsClient clientesendMessage
. Proporcione un SendMessageRequest
Importaciones
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;
Código
sqsClient.sendMessage(SendMessageRequest.builder() .queueUrl(queueUrl) .messageBody("Hello world!") .delaySeconds(10) .build()); sqsClient.sendMessage(sendMsgRequest);
Enviar varios mensajes en una solicitud
Envíe varios mensajes en una sola solicitud mediante el método SqsClient sendMessageBatch
. Este método toma una SendMessageBatchRequest
Importaciones
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;
Código
SendMessageBatchRequest sendMessageBatchRequest = SendMessageBatchRequest.builder() .queueUrl(queueUrl) .entries(SendMessageBatchRequestEntry.builder().id("id1").messageBody("Hello from msg 1").build(), SendMessageBatchRequestEntry.builder().id("id2").messageBody("msg 2").delaySeconds(10).build()) .build(); sqsClient.sendMessageBatch(sendMessageBatchRequest);
Consulte el ejemplo completo
Recuperar mensajes
Recupere todos los mensajes que se encuentran actualmente en la cola llamando al método SqsClient receiveMessage
. Este método toma una ReceiveMessageRequest
Importaciones
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;
Código
try { ReceiveMessageRequest receiveMessageRequest = ReceiveMessageRequest.builder() .queueUrl(queueUrl) .maxNumberOfMessages(5) .build(); List<Message> messages = sqsClient.receiveMessage(receiveMessageRequest).messages(); return messages; } catch (SqsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return null;
Consulte el ejemplo completo
Eliminar un mensaje después de su recepción
Tras recibir un mensaje y procesar su contenido, elimínelo de la cola enviando el identificador de recepción del mensaje y la URL de la cola al SqsClient's
deleteMessage
Importaciones
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;
Código
try { for (Message message : messages) { DeleteMessageRequest deleteMessageRequest = DeleteMessageRequest.builder() .queueUrl(queueUrl) .receiptHandle(message.receiptHandle()) .build(); sqsClient.deleteMessage(deleteMessageRequest); }
Consulta el ejemplo completo
Más información
-
Cómo funcionan las colas de Amazon Simple Queue Service en la Guía para desarrolladores de Amazon Simple Queue Service
-
SendMessageen la referencia Amazon Simple Queue Service de la API
-
SendMessageBatchen la referencia Amazon Simple Queue Service de la API
-
ReceiveMessageen la referencia Amazon Simple Queue Service de la API
-
DeleteMessageen la referencia Amazon Simple Queue Service de la API