

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.

# Travaillez avec Amazon Simple Queue Service
<a name="examples-sqs"></a>

Cette section fournit des exemples de programmation à l'[Amazon Simple Queue Service](https://docs.aws.amazon.com/sqs/)aide de la version AWS SDK pour Java 2.x.

Les exemples suivants incluent uniquement le code nécessaire pour démontrer chaque technique. L'[exemple de code complet est disponible sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2). À partir de là, vous pouvez télécharger un fichier source unique ou cloner le référentiel en local pour obtenir tous les exemples à générer et exécuter.

**Topics**
+ [Utiliser le traitement automatique des demandes par lots](sqs-auto-batch.md)
+ [Opérations sur les files](examples-sqs-message-queues.md)
+ [Opérations relatives aux messages](examples-sqs-messages.md)

# Utilisez le traitement automatique des demandes par lots pour Amazon SQS avec AWS SDK for Java 2.x
<a name="sqs-auto-batch"></a>

L'API Automatic Request Batching pour Amazon SQS est une bibliothèque de haut niveau qui fournit un moyen efficace de regrouper et de mettre en mémoire tampon les demandes pour les opérations SQS. En utilisant l'API de traitement par lots, vous réduisez le nombre de demandes adressées à SQS, ce qui améliore le débit et minimise les coûts. 

Comme les méthodes de l'API par lots correspondent aux `[SqsAsyncClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/SqsAsyncClient.html)` méthodes (`sendMessage`,,,),`changeMessageVisibility`,`deleteMessage`,,`receiveMessage`,,,,,,, vous pouvez utiliser l'API par lots en remplacement avec un minimum de modifications. 

Cette rubrique explique comment configurer et utiliser l'API Automatic Request Batching pour Amazon SQS.

## Vérifiez les prérequis
<a name="sqs-auto-batch-requirements"></a>

Vous devez utiliser la version *2.28.0* ou ultérieure du SDK pour Java 2.x pour avoir accès à l'API de traitement par lots. Votre Maven `pom.xml` doit au moins contenir les éléments suivants.

```
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>software.amazon.awssdk</groupId>
            <artifactId>bom</artifactId>
            <version>2.28.231</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
<dependencies>
    <dependency>
        <groupId>software.amazon.awssdk</groupId>
        <artifactId>sqs</artifactId>
    </dependency>
</dependencies>
```

1 [Dernière version](https://central.sonatype.com/artifact/software.amazon.awssdk/bom)

## Création d'un gestionnaire de lots
<a name="sqs-auto-batch-create"></a>

L'API de traitement automatique des demandes par lots est implémentée par l'[SqsAsyncBatchManager](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/SqsAsyncBatchManager.html)interface. Vous pouvez créer une instance du gestionnaire de plusieurs manières.

### Configuration par défaut en utilisant `SqsAsyncClient`
<a name="sqs-batch-manager-create-default"></a>

Le moyen le plus simple de créer un gestionnaire de lots consiste à appeler la méthode d'`batchManager`usine sur une [SqsAsyncClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/SqsAsyncClient.html)instance existante. L'approche simple est illustrée dans l'extrait suivant. 

```
SqsAsyncClient asyncClient = SqsAsyncClient.create();
SqsAsyncBatchManager sqsAsyncBatchManager = asyncClient.batchManager();
```

Lorsque vous utilisez cette approche, l'`SqsAsyncBatchManager`instance utilise les valeurs par défaut indiquées dans le tableau de la [Remplacer les paramètres de configuration pour `SqsAsyncBatchManager`](#sqs-auto-batch-config-settings) section. En outre, l'`SqsAsyncBatchManager`instance utilise `ExecutorService` l'`SqsAsyncClient`instance à partir de laquelle elle a été créée.

### Configuration personnalisée en utilisant `SqsAsyncBatchManager.Builder`
<a name="sqs-batch-manager-create-custom"></a>

Pour des cas d'utilisation plus avancés, vous pouvez personnaliser le gestionnaire de lots à l'aide du [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/SqsAsyncBatchManager.Builder.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/SqsAsyncBatchManager.Builder.html). En utilisant cette approche pour créer une `SqsAsyncBatchManager` instance, vous pouvez affiner le comportement de traitement par lots. L'extrait suivant montre un exemple d'utilisation du générateur pour personnaliser le comportement de traitement par lots.

```
SqsAsyncBatchManager batchManager = SqsAsyncBatchManager.builder()
    .client(SqsAsyncClient.create())
    .scheduledExecutor(Executors.newScheduledThreadPool(5))
    .overrideConfiguration(b -> b
        .receiveMessageMinWaitDuration(Duration.ofSeconds(10))
        .receiveMessageVisibilityTimeout(Duration.ofSeconds(1))
        .receiveMessageAttributeNames(Collections.singletonList("*"))
        .receiveMessageSystemAttributeNames(Collections.singletonList(MessageSystemAttributeName.ALL)))
    .build();
```

Lorsque vous utilisez cette approche, vous pouvez ajuster les paramètres de l'`BatchOverrideConfiguration`objet présentés dans le tableau de la [Remplacer les paramètres de configuration pour `SqsAsyncBatchManager`](#sqs-auto-batch-config-settings) section. Vous pouvez également fournir une personnalisation [https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ScheduledExecutorService.html](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ScheduledExecutorService.html)pour le gestionnaire de lots en utilisant cette approche.

## Envoyer des messages
<a name="sqs-auto-batch-send"></a>

Pour envoyer des messages avec le gestionnaire de lots, utilisez la `[SqsAsyncBatchManager\$1sendMessage](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/SqsAsyncBatchManager.html#sendMessage(software.amazon.awssdk.services.sqs.model.SendMessageRequest))` méthode. Le SDK met en mémoire tampon les demandes et les envoie sous forme de lot lorsque les `sendRequestFrequency` valeurs `maxBatchSize` or sont atteintes.

L'exemple suivant montre une `sendMessage` demande immédiatement suivie d'une autre demande. Dans ce cas, le SDK envoie les deux messages en un seul lot.

```
// Sending the first message
CompletableFuture<SendMessageResponse> futureOne = 
    sqsAsyncBatchManager.sendMessage(r -> r.messageBody("One").queueUrl("queue"));

// Sending the second message
CompletableFuture<SendMessageResponse> futureTwo = 
    sqsAsyncBatchManager.sendMessage(r -> r.messageBody("Two").queueUrl("queue"));

// Waiting for both futures to complete and retrieving the responses
SendMessageResponse messageOne = futureOne.join();
SendMessageResponse messageTwo = futureTwo.join();
```

## Modifier le délai de visibilité des messages
<a name="sqs-auto-batch-change-vis"></a>

Vous pouvez modifier le délai de visibilité des messages d'un lot à l'aide de [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/SqsAsyncBatchManager.html#changeMessageVisibility(java.util.function.Consumer)](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/SqsAsyncBatchManager.html#changeMessageVisibility(java.util.function.Consumer))cette méthode. Le SDK met en mémoire tampon les demandes et les envoie sous forme de lot lorsque les `sendRequestFrequency` valeurs `maxBatchSize` or sont atteintes.

L'exemple suivant montre comment appeler la `changeMessageVisibility` méthode.

```
CompletableFuture<ChangeMessageVisibilityResponse> futureOne =
    sqsAsyncBatchManager.changeMessageVisibility(r -> 
        r.receiptHandle("receiptHandle")
         .queueUrl("queue"));
ChangeMessageVisibilityResponse response = futureOne.join();
```

## Supprimer des messages
<a name="sqs-auto-batch-delete"></a>

Vous pouvez supprimer des messages par lots à l'aide de [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/SqsAsyncBatchManager.html#deleteMessage(java.util.function.Consumer)](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/SqsAsyncBatchManager.html#deleteMessage(java.util.function.Consumer))cette méthode. Le SDK met en mémoire tampon les demandes et les envoie sous forme de lot lorsque les `sendRequestFrequency` valeurs `maxBatchSize` or sont atteintes.

L'exemple suivant montre comment appeler la `deleteMessage` méthode.

```
CompletableFuture<DeleteMessageResponse> futureOne = 
    sqsAsyncBatchManager.deleteMessage(r -> 
        r.receiptHandle("receiptHandle")
         .queueUrl("queue"));
DeleteMessageResponse response = futureOne.join();
```

## Recevoir des messages
<a name="sqs-auto-batch-receive"></a>

### Utiliser les paramètres par défaut
<a name="sqs-auto-batch-receive-default-settings"></a>

Lorsque vous interrogez la `[SqsAsyncBatchManager\$1receiveMessage](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/SqsAsyncBatchManager.html#receiveMessage(java.util.function.Consumer))` méthode dans votre application, le gestionnaire de lots extrait les messages de sa mémoire tampon interne, que le SDK met automatiquement à jour en arrière-plan.

L'exemple suivant montre comment appeler la `receiveMessage` méthode.

```
CompletableFuture<ReceiveMessageResponse> responseFuture = 
    sqsAsyncBatchManager.receiveMessage(r -> r.queueUrl("queueUrl"));
```

### Utiliser des paramètres personnalisés
<a name="sqs-auto-batch-receive-custom-settings"></a>

Si vous souhaitez personnaliser davantage la demande, par exemple en définissant des temps d'attente personnalisés et en spécifiant le nombre de messages à récupérer, vous pouvez personnaliser la demande comme indiqué dans l'exemple suivant.

```
CompletableFuture<ReceiveMessageResponse> response = 
    sqsAsyncBatchManager.receiveMessage(r -> 
        r.queueUrl("queueUrl")
         .waitTimeSeconds(5)
         .visibilityTimeout(20));
```

**Note**  
Si vous appelez `receiveMessage` avec un `[ReceiveMessageRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/ReceiveMessageRequest.html)` qui inclut l'un des paramètres suivants, le SDK contourne le gestionnaire de lots et envoie une demande asynchrone `receiveMessage` normale :  
`messageAttributeNames`
`messageSystemAttributeNames`
`messageSystemAttributeNamesWithStrings`
`overrideConfiguration`

## Remplacer les paramètres de configuration pour `SqsAsyncBatchManager`
<a name="sqs-auto-batch-config-settings"></a>

Vous pouvez ajuster les paramètres suivants lorsque vous créez une `SqsAsyncBatchManager` instance. La liste de paramètres suivante est disponible sur le [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/BatchOverrideConfiguration.Builder.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/BatchOverrideConfiguration.Builder.html).


| Paramètre | Description | Valeur par défaut | 
| --- | --- | --- | 
| maxBatchSize | Nombre maximum de demandes par lot pour chaque SendMessageBatchRequestChangeMessageVisibilityBatchRequest, ouDeleteMessageBatchRequest. La valeur maximale est 10. | 10 | 
| sendRequestFrequency |  Durée avant l'envoi d'un lot, sauf si `maxBatchSize` elle est atteinte plus tôt. Des valeurs plus élevées peuvent réduire les demandes mais augmenter le temps de latence.  | 200 ms | 
| receiveMessageVisibilityTimeout | Délai de visibilité pour les messages. S'il n'est pas défini, la valeur par défaut de la file d'attente est utilisée. | Par défaut de la file d'attente | 
| receiveMessageMinWaitDuration | Temps d'attente minimal pour les receiveMessage demandes. Évitez de mettre à 0 pour éviter le gaspillage du processeur. | 50 ms | 
| receiveMessageSystemAttributeNames | Liste des [noms d'attributs système](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/MessageSystemAttributeName.html) à demander pour les receiveMessage appels. | Aucune | 
| receiveMessageAttributeNames | Liste des [noms d'attributs](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes) à demander pour les receiveMessage appels. | Aucune | 

# Travailler avec les files d'attente de Amazon Simple Queue Service messages
<a name="examples-sqs-message-queues"></a>

Une *file de messages* est le conteneur logique utilisé pour envoyer des messages de manière fiable Amazon Simple Queue Service. Il existe deux types de files d'attente : *standard* et *FIFO* (premier entré, premier sorti). Pour en savoir plus sur les files d'attente et les différences entre ces types, consultez le [guide du Amazon Simple Queue Service développeur](https://docs.aws.amazon.com//AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html).

Cette rubrique décrit comment créer, répertorier, supprimer et obtenir l'URL d'une Amazon Simple Queue Service file d'attente à l'aide du AWS SDK pour Java.

La `sqsClient` variable utilisée dans les exemples suivants peut être créée à partir de l'extrait de code suivant.

```
SqsClient sqsClient = SqsClient.create();
```

Lorsque vous créez un en `SqsClient` utilisant la `create()` méthode statique, le SDK configure la région en utilisant la chaîne de fournisseurs de régions par [défaut et les informations d'identification en utilisant la chaîne de fournisseurs](region-selection.md#default-region-provider-chain) d'informations [d'identification par défaut](credentials-chain.md).

## Création d’une file d’attente
<a name="sqs-create-queue"></a>

Utilisez la `SqsClient’s` `createQueue` méthode et fournissez un `[CreateQueueRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/CreateQueueRequest.html)` objet qui décrit les paramètres de la file d'attente, comme indiqué dans l'extrait de code suivant.

 **Importations** 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sqs.SqsClient;
import software.amazon.awssdk.services.sqs.model.*;
import java.util.List;
```

 **Code** 

```
            CreateQueueRequest createQueueRequest = CreateQueueRequest.builder()
                .queueName(queueName)
                .build();

            sqsClient.createQueue(createQueueRequest);
```

Voir l'[exemple complet](https://github.com/awsdocs/aws-doc-sdk-examples/blob/cf25559da654a7b74bec039c0ab9397dc5951dd4/javav2/example_code/sqs/src/main/java/com/example/sqs/SQSExample.java#L52) sur GitHub.

## Répertorier les files d'attente
<a name="sqs-list-queues"></a>

Pour répertorier les Amazon Simple Queue Service files d'attente pour votre compte, appelez la `SqsClient’s` `listQueues` méthode avec un `[ListQueuesRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/ListQueuesRequest.html)` objet.

Lorsque vous utilisez la forme de la [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/SqsClient.html#listQueues()](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/SqsClient.html#listQueues())méthode qui ne prend aucun paramètre, le service renvoie *toutes les files d'attente, jusqu'à 1 000 files d'attente*. 

Vous pouvez fournir un préfixe de nom de file d'attente à l'`[ListQueuesRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/ListQueuesRequest.html)`objet pour limiter les résultats aux files d'attente correspondant à ce préfixe, comme indiqué dans le code suivant.

 **Importations** 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sqs.SqsClient;
import software.amazon.awssdk.services.sqs.model.*;
import java.util.List;
```

 **Code** 

```
        String prefix = "que";

        try {
            ListQueuesRequest listQueuesRequest = ListQueuesRequest.builder().queueNamePrefix(prefix).build();
            ListQueuesResponse listQueuesResponse = sqsClient.listQueues(listQueuesRequest);

            for (String url : listQueuesResponse.queueUrls()) {
                System.out.println(url);
            }

        } catch (SqsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
```

Voir l'[exemple complet](https://github.com/awsdocs/aws-doc-sdk-examples/blob/cf25559da654a7b74bec039c0ab9397dc5951dd4/javav2/example_code/sqs/src/main/java/com/example/sqs/SQSExample.java#L79) sur GitHub.

## Obtenir l'URL d'une file d'attente
<a name="sqs-get-queue-url"></a>

Le code suivant montre comment obtenir l'URL d'une file d'attente en appelant la `SqsClient’s` `getQueueUrl` méthode avec un `[GetQueueUrlRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/GetQueueUrlRequest.html)` objet.

 **Importations** 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sqs.SqsClient;
import software.amazon.awssdk.services.sqs.model.*;
import java.util.List;
```

 **Code** 

```
            GetQueueUrlResponse getQueueUrlResponse =
                sqsClient.getQueueUrl(GetQueueUrlRequest.builder().queueName(queueName).build());
            String queueUrl = getQueueUrlResponse.queueUrl();
            return queueUrl;
```

Voir l'[exemple complet](https://github.com/awsdocs/aws-doc-sdk-examples/blob/7486a1a092aa8e16a21698ef26f9d524fef62e55/javav2/example_code/sqs/src/main/java/com/example/sqs/SQSExample.java#L70) sur GitHub.

## Suppression d’une file d’attente
<a name="sqs-delete-queue"></a>

Fournissez l'[URL](#sqs-get-queue-url) de la file d'attente vers l'`[DeleteQueueRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/DeleteQueueRequest.html)`objet. Appelez ensuite la `SqsClient’s` `deleteQueue` méthode pour supprimer une file d'attente comme indiqué dans le code suivant.

 **Importations** 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sqs.SqsClient;
import software.amazon.awssdk.services.sqs.model.*;
import java.util.List;
```

 **Code** 

```
    public static void deleteSQSQueue(SqsClient sqsClient, String queueName) {

        try {

            GetQueueUrlRequest getQueueRequest = GetQueueUrlRequest.builder()
                    .queueName(queueName)
                    .build();

            String queueUrl = sqsClient.getQueueUrl(getQueueRequest).queueUrl();

            DeleteQueueRequest deleteQueueRequest = DeleteQueueRequest.builder()
                    .queueUrl(queueUrl)
                    .build();

            sqsClient.deleteQueue(deleteQueueRequest);

        } catch (SqsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
```

Voir l'[exemple complet](https://github.com/awsdocs/aws-doc-sdk-examples/blob/6240df86c5f17eae1e23d1139d1435c7dc4b2a11/javav2/example_code/sqs/src/main/java/com/example/sqs/DeleteQueue.java#L48) sur GitHub.

## En savoir plus
<a name="more-information"></a>
+  [CreateQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html)dans la référence de Amazon Simple Queue Service l'API
+  [GetQueueUrl](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueUrl.html)dans la référence de Amazon Simple Queue Service l'API
+  [ListQueues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ListQueues.html)dans la référence de Amazon Simple Queue Service l'API
+  [DeleteQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteQueue.html)dans la référence de Amazon Simple Queue Service l'API

# Envoyer, recevoir et supprimer Amazon Simple Queue Service des messages
<a name="examples-sqs-messages"></a>

Un message est une portion de données qui peut être envoyée et reçue par des composants distribués. Les messages sont toujours livrés à l'aide d'une [file d'attente SQS](examples-sqs-message-queues.md).

La `sqsClient` variable utilisée dans les exemples suivants peut être créée à partir de l'extrait de code suivant.

```
SqsClient sqsClient = SqsClient.create();
```

Lorsque vous créez un en `SqsClient` utilisant la `create()` méthode statique, le SDK configure la région en utilisant la chaîne de fournisseurs de régions par [défaut et les informations d'identification en utilisant la chaîne de fournisseurs](region-selection.md#default-region-provider-chain) d'informations [d'identification par défaut](credentials-chain.md).

## Envoyer un message
<a name="sqs-message-send"></a>

Ajoutez un seul message à une Amazon Simple Queue Service file d'attente en appelant la `sendMessage` méthode SqsClient client. Fournissez un [SendMessageRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/SendMessageRequest.html)objet contenant l'[URL](examples-sqs-message-queues.md#sqs-get-queue-url) de la file d'attente, le corps du message et la valeur de délai facultative (en secondes).

 **Importations** 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sqs.SqsClient;
import software.amazon.awssdk.services.sqs.model.*;
import java.util.List;
```

 **Code** 

```
            sqsClient.sendMessage(SendMessageRequest.builder()
                .queueUrl(queueUrl)
                .messageBody("Hello world!")
                .delaySeconds(10)
                .build());

            sqsClient.sendMessage(sendMsgRequest);
```

## Envoyer plusieurs messages dans une demande
<a name="sqs-messages-send-multiple"></a>

Envoyez plusieurs messages dans une seule demande à l'aide de la méthode `sendMessageBatch` d' SqsClient . Cette méthode utilise un [SendMessageBatchRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/SendMessageBatchRequest.html)qui contient l'URL de la file d'attente et une liste de messages à envoyer. (Chaque message est un [SendMessageBatchRequestEntry](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/SendMessageBatchRequestEntry.html).) Vous pouvez aussi retarder l'envoi d'un message spécifique en définissant une valeur de retard sur le message.

 **Importations** 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sqs.SqsClient;
import software.amazon.awssdk.services.sqs.model.*;
import java.util.List;
```

 **Code** 

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

Voir l'[exemple complet](https://github.com/awsdocs/aws-doc-sdk-examples/blob/cf25559da654a7b74bec039c0ab9397dc5951dd4/javav2/example_code/sqs/src/main/java/com/example/sqs/SQSExample.java#L133) sur GitHub.

## Extraction des messages
<a name="sqs-messages-receive"></a>

Récupérez tous les messages qui sont actuellement dans la file d'attente en appelant la méthode `receiveMessage` d' SqsClient . Cette méthode utilise un [ReceiveMessageRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/ReceiveMessageRequest.html)qui contient l'URL de la file d'attente. Vous pouvez également spécifier le nombre maximal de messages à renvoyer. Les messages sont renvoyés sous la forme d'une liste d'objets [Message](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/Message.html).

 **Importations** 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sqs.SqsClient;
import software.amazon.awssdk.services.sqs.model.*;
import java.util.List;
```

 **Code** 

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

Voir l'[exemple complet](https://github.com/awsdocs/aws-doc-sdk-examples/blob/cf25559da654a7b74bec039c0ab9397dc5951dd4/javav2/example_code/sqs/src/main/java/com/example/sqs/SQSExample.java#L148) sur GitHub.

## Supprimer un message après réception
<a name="sqs-messages-delete"></a>

Après avoir reçu un message et traité son contenu, supprimez-le de la file d'attente en envoyant le descripteur de réception du message et l'URL de la file d'attente à la `SqsClient's` [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/SqsClient.html#deleteMessage(software.amazon.awssdk.services.sqs.model.DeleteMessageRequest)](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/SqsClient.html#deleteMessage(software.amazon.awssdk.services.sqs.model.DeleteMessageRequest))méthode.

 **Importations** 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sqs.SqsClient;
import software.amazon.awssdk.services.sqs.model.*;
import java.util.List;
```

 **Code** 

```
        try {
            for (Message message : messages) {
                DeleteMessageRequest deleteMessageRequest = DeleteMessageRequest.builder()
                        .queueUrl(queueUrl)
                        .receiptHandle(message.receiptHandle())
                        .build();
                sqsClient.deleteMessage(deleteMessageRequest);
            }
```

Voir l'[exemple complet](https://github.com/awsdocs/aws-doc-sdk-examples/blob/cf25559da654a7b74bec039c0ab9397dc5951dd4/javav2/example_code/sqs/src/main/java/com/example/sqs/SQSExample.java#L187) sur GitHub.

## Plus d'informations
<a name="more-info"></a>
+  [Comment fonctionnent les Amazon Simple Queue Service files d'attente](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-basic-architecture.html) dans le guide du Amazon Simple Queue Service développeur
+  [SendMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)dans la référence de Amazon Simple Queue Service l'API
+  [SendMessageBatch](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessageBatch.html)dans la référence de Amazon Simple Queue Service l'API
+  [ReceiveMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html)dans la référence de Amazon Simple Queue Service l'API
+  [DeleteMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html)dans la référence de Amazon Simple Queue Service l'API