Envoyer, recevoir et supprimer Amazon SQS des messages - AWS SDK pour Java 1. x

Le AWS SDK pour Java 1.x a été atteint end-of-support le 31 décembre 2025. Nous vous recommandons de migrer vers le pour continuer AWS SDK for Java 2.xà bénéficier des nouvelles fonctionnalités, des améliorations de disponibilité et des mises à jour de sécurité.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Envoyer, recevoir et supprimer Amazon SQS des messages

Cette rubrique décrit comment envoyer, recevoir et supprimer Amazon SQS des messages. Les messages sont toujours livrés à l'aide d'une file d'attente SQS.

Envoi d'un message

Ajoutez un seul message à une Amazon SQS file d'attente en appelant la méthode du client AmazonSQS. sendMessage Fournissez un SendMessageRequestobjet contenant l'URL de la file d'attente, le corps du message et la valeur de délai facultative (en secondes).

Importations

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

Code

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

Voir l'exemple complet sur GitHub.

Envoi simultané de plusieurs messages

Vous pouvez envoyer plusieurs message dans une même demande. Pour envoyer plusieurs messages, utilisez la sendMessageBatch méthode du client AmazonSQS, qui prend une URL SendMessageBatchRequestcontenant l'URL de la file d'attente et une liste de messages (chacun a SendMessageBatchRequestEntry) à envoyer. Vous pouvez également définir une valeur de délai facultative par message.

Importations

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

Code

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);

Voir l'exemple complet sur GitHub.

Réception de messages

Récupérez tous les messages actuellement dans la file d'attente en appelant la receiveMessage méthode du client AmazonSQS et en lui transmettant l'URL de la file d'attente. Les messages sont renvoyés sous la forme d'une liste d'objets Message.

Importations

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

Code

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

Suppression des messages après réception

Après avoir reçu un message et traité son contenu, supprimez-le de la file d'attente en envoyant l'identifiant de réception du message et l'URL de la file d'attente à la méthode du deleteMessage client AmazonSQS.

Code

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

Voir l'exemple complet sur GitHub.

Plus d'informations