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
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
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
Plus d'informations
-
Comment fonctionnent les Amazon SQS files d'attente dans le guide du Amazon SQS développeur
-
SendMessagedans la référence de Amazon SQS l'API
-
SendMessageBatchdans la référence de Amazon SQS l'API
-
ReceiveMessagedans la référence de Amazon SQS l'API
-
DeleteMessagedans la référence de Amazon SQS l'API