O AWS SDK para Java 1.x chegou end-of-support em 31 de dezembro de 2025. Recomendamos que você migre para o AWS SDK for Java 2.x para continuar recebendo novos recursos, melhorias de disponibilidade e atualizações de segurança.
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Enviar, receber e excluir mensagens do Amazon SQS
Este tópico descreve como enviar, receber e excluir mensagens do Amazon SQS. As mensagens são sempre entregues usando-se uma fila do SQS.
Enviar uma mensagem
Adicione uma mensagem única a uma fila do Amazon SQS chamando o método sendMessage do cliente do AmazonSQS. Forneça um objeto SendMessageRequest que contenha o URL da fila, o corpo da mensagem e o valor de atraso opcional (em segundos).
Importações
import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.SendMessageRequest;
Código da
SendMessageRequest send_msg_request = new SendMessageRequest() .withQueueUrl(queueUrl) .withMessageBody("hello world") .withDelaySeconds(5); sqs.sendMessage(send_msg_request);
Veja o exemplo completo
Enviar várias mensagens de uma só vez
Você pode enviar mais de uma mensagem em uma única solicitação. Para enviar várias mensagens, use o método sendMessageBatch do cliente do AmazonSQS, que utiliza um SendMessageBatchRequest que contém o URL da fila e uma lista de mensagens (cada uma sendo um SendMessageBatchRequestEntry) a serem enviadas. Você também pode definir um valor de atraso opcional por mensagem.
Importações
import com.amazonaws.services.sqs.model.SendMessageBatchRequest; import com.amazonaws.services.sqs.model.SendMessageBatchRequestEntry;
Código da
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);
Veja o exemplo completo
Receber mensagens
Recupere todas as mensagens que estejam atualmente na fila chamando o método receiveMessage do cliente do AmazonSQS, passando o URL da fila. As mensagens são retornadas como uma lista de objetos Message.
Importações
import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.AmazonSQSException; import com.amazonaws.services.sqs.model.SendMessageBatchRequest;
Código da
List<Message> messages = sqs.receiveMessage(queueUrl).getMessages();
Excluir mensagens depois do recebimento
Após receber uma mensagem e processar o conteúdo, exclua a mensagem da fila enviando o identificador de recebimento da mensagem e o URL da fila para o método deleteMessage de cliente do AmazonSQS.
Código da
for (Message m : messages) { sqs.deleteMessage(queueUrl, m.getReceiptHandle()); }
Veja o exemplo completo
Mais informações
-
Como as filas do Amazon SQS funcionam no Guia do Desenvolvedor do Amazon SQS
-
SendMessage na Referência de API do Amazon SQS
-
SendMessageBatch na Referência de API do Amazon SQS
-
ReceiveMessage na Referência de API do Amazon SQS
-
DeleteMessage na Referência de API do Amazon SQS