

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Arbeite mit Amazon Simple Queue Service
<a name="examples-sqs"></a>

Dieser Abschnitt enthält Beispiele für die Programmierung [Amazon Simple Queue Service](https://docs.aws.amazon.com/sqs/)mit AWS SDK für Java 2.x.

Die folgenden Beispiele enthalten nur den Code, der zur Demonstration jeder Technik nötig ist. Der [vollständige Beispielcode ist verfügbar unter GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2). Von dort aus können Sie eine einzelne Quelldatei herunterladen oder das Repository klonen, um alle Beispiele lokal zu erstellen und auszuführen.

**Topics**
+ [Verwenden Sie die automatische Batchverarbeitung von Anfragen](sqs-auto-batch.md)
+ [Vorgänge in der Warteschlange](examples-sqs-message-queues.md)
+ [Nachrichtenoperationen](examples-sqs-messages.md)

# Verwenden Sie die automatische Batchverarbeitung von Anfragen für Amazon SQS mit dem AWS SDK for Java 2.x
<a name="sqs-auto-batch"></a>

Die Automatic Request Batching API für Amazon SQS ist eine Bibliothek auf hoher Ebene, die eine effiziente Möglichkeit bietet, Anfragen für SQS-Operationen zu stapeln und zu puffern. Durch die Verwendung der Batching-API reduzieren Sie die Anzahl der Anfragen an SQS, was den Durchsatz verbessert und die Kosten minimiert. 

Da die Batch-API-Methoden mit den `[SqsAsyncClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/SqsAsyncClient.html)` Methoden—`sendMessage`,,`changeMessageVisibility`, `receiveMessage` —übereinstimmen`deleteMessage`, können Sie die Batch-API als direkten Ersatz mit minimalen Änderungen verwenden. 

Dieses Thema gibt Ihnen einen Überblick über die Konfiguration und die Arbeit mit der Automatic Request Batching API für Amazon SQS.

## Überprüfen Sie die Voraussetzungen
<a name="sqs-auto-batch-requirements"></a>

Sie müssen Version *2.28.0* oder höher des SDK for Java 2.x verwenden, um auf die Batching-API zugreifen zu können. Ihr Maven `pom.xml` sollte mindestens die folgenden Elemente enthalten.

```
<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 [Letzte Version](https://central.sonatype.com/artifact/software.amazon.awssdk/bom)

## Erstellen Sie einen Batch-Manager
<a name="sqs-auto-batch-create"></a>

Die automatische Batching-API für Anfragen wird von der [SqsAsyncBatchManager](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/SqsAsyncBatchManager.html)Schnittstelle implementiert. Sie können eine Instanz des Managers auf verschiedene Arten erstellen.

### Standardkonfiguration mithilfe von `SqsAsyncClient`
<a name="sqs-batch-manager-create-default"></a>

Die einfachste Methode zum Erstellen eines Batch-Managers besteht darin, die `batchManager` Factory-Methode für eine vorhandene [SqsAsyncClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/SqsAsyncClient.html)Instanz aufzurufen. Der einfache Ansatz wird im folgenden Snippet gezeigt. 

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

Wenn Sie diesen Ansatz verwenden, verwendet die `SqsAsyncBatchManager` Instanz die Standardwerte, die in der Tabelle im [Überschreiben Sie die Konfigurationseinstellungen für `SqsAsyncBatchManager`](#sqs-auto-batch-config-settings) Abschnitt aufgeführt sind. Darüber hinaus verwendet die `SqsAsyncBatchManager` Instanz die `ExecutorService` der `SqsAsyncClient` Instanz, aus der sie erstellt wurde.

### Benutzerdefinierte Konfiguration mithilfe von `SqsAsyncBatchManager.Builder`
<a name="sqs-batch-manager-create-custom"></a>

Für fortgeschrittenere Anwendungsfälle können Sie den Batch-Manager mithilfe von anpassen [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). Wenn Sie diesen Ansatz verwenden, um eine `SqsAsyncBatchManager` Instanz zu erstellen, können Sie das Batching-Verhalten fein abstimmen. Der folgende Ausschnitt zeigt ein Beispiel dafür, wie Sie den Builder verwenden können, um das Batching-Verhalten anzupassen.

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

Wenn Sie diesen Ansatz verwenden, können Sie die Einstellungen für das `BatchOverrideConfiguration` Objekt anpassen, die in der Tabelle im Abschnitt aufgeführt sind. [Überschreiben Sie die Konfigurationseinstellungen für `SqsAsyncBatchManager`](#sqs-auto-batch-config-settings) Mit diesem Ansatz können Sie auch einen benutzerdefinierten Wert [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)für den Batch-Manager angeben.

## Senden Sie Nachrichten
<a name="sqs-auto-batch-send"></a>

Verwenden Sie die `[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))` Methode, um Nachrichten mit dem Batch-Manager zu senden. Das SDK puffert Anfragen und sendet sie als Batch, wenn die `sendRequestFrequency` Werte `maxBatchSize` oder erreicht sind.

Das folgende Beispiel zeigt eine `sendMessage` Anfrage, auf die unmittelbar eine weitere Anfrage folgt. In diesem Fall sendet das SDK beide Nachrichten in einem einzigen Batch.

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

## Ändern Sie das Timeout für die Sichtbarkeit von Nachrichten
<a name="sqs-auto-batch-change-vis"></a>

Sie können das Sichtbarkeits-Timeout von Nachrichten in einem Batch mithilfe der [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))Methode ändern. Das SDK puffert Anfragen und sendet sie als Batch, wenn die `sendRequestFrequency` Werte `maxBatchSize` oder erreicht sind.

Das folgende Beispiel zeigt, wie die `changeMessageVisibility` Methode aufgerufen wird.

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

## Nachrichten löschen
<a name="sqs-auto-batch-delete"></a>

Mit [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))dieser Methode können Sie Nachrichten stapelweise löschen. Das SDK puffert Anfragen und sendet sie als Batch, wenn die `sendRequestFrequency` Werte `maxBatchSize` oder erreicht sind.

Das folgende Beispiel zeigt, wie Sie die `deleteMessage` Methode aufrufen können.

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

## Empfangen Sie Nachrichten
<a name="sqs-auto-batch-receive"></a>

### Verwenden Sie die Standardeinstellungen
<a name="sqs-auto-batch-receive-default-settings"></a>

Wenn Sie die `[SqsAsyncBatchManager\$1receiveMessage](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/SqsAsyncBatchManager.html#receiveMessage(java.util.function.Consumer))` Methode in Ihrer Anwendung abfragen, ruft der Batch-Manager Nachrichten aus seinem internen Puffer ab, den das SDK automatisch im Hintergrund aktualisiert.

Das folgende Beispiel zeigt, wie die `receiveMessage` Methode aufgerufen wird.

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

### Verwenden Sie benutzerdefinierte Einstellungen
<a name="sqs-auto-batch-receive-custom-settings"></a>

Wenn Sie die Anfrage weiter anpassen möchten, indem Sie beispielsweise benutzerdefinierte Wartezeiten festlegen und die Anzahl der abzurufenden Nachrichten angeben, können Sie die Anforderung wie im folgenden Beispiel dargestellt anpassen.

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

**Anmerkung**  
Wenn Sie `receiveMessage` mit einer aufrufen`[ReceiveMessageRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/ReceiveMessageRequest.html)`, die einen der folgenden Parameter enthält, umgeht das SDK den Batch-Manager und sendet eine reguläre asynchrone Anfrage`receiveMessage`:  
`messageAttributeNames`
`messageSystemAttributeNames`
`messageSystemAttributeNamesWithStrings`
`overrideConfiguration`

## Überschreiben Sie die Konfigurationseinstellungen für `SqsAsyncBatchManager`
<a name="sqs-auto-batch-config-settings"></a>

Sie können die folgenden Einstellungen anpassen, wenn Sie eine `SqsAsyncBatchManager` Instanz erstellen. Die folgende Liste von Einstellungen ist auf der verfügbar [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).


| Einstellung | Description | Standardwert | 
| --- | --- | --- | 
| maxBatchSize | Maximale Anzahl von Anfragen pro Stapel für jedesSendMessageBatchRequest,ChangeMessageVisibilityBatchRequest, oderDeleteMessageBatchRequest. Der Höchstwert ist 10. | 10 | 
| sendRequestFrequency |  Zeit bis zum Senden eines Batches, sofern sie nicht `maxBatchSize` früher erreicht wurde. Höhere Werte können die Anzahl der Anfragen reduzieren, aber die Latenz erhöhen.  | 200 ms | 
| receiveMessageVisibilityTimeout | Timeout für die Sichtbarkeit von Nachrichten. Wenn diese Option nicht gesetzt ist, wird die Standardeinstellung der Warteschlange verwendet. | Die Standardeinstellung der Warteschlange | 
| receiveMessageMinWaitDuration | Minimale Wartezeit für receiveMessage Anfragen. Vermeiden Sie es, auf 0 zu setzen, um CPU-Verschwendung zu vermeiden. | 50 ms | 
| receiveMessageSystemAttributeNames | Liste der [Systemattributnamen](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/MessageSystemAttributeName.html), die für receiveMessage Anrufe angefordert werden sollen. | Keine | 
| receiveMessageAttributeNames | Liste der [Attributnamen](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes), die für receiveMessage Anrufe angefordert werden sollen. | Keine | 

# Mit Amazon Simple Queue Service Nachrichtenwarteschlangen arbeiten
<a name="examples-sqs-message-queues"></a>

Eine *Nachrichtenwarteschlange* ist der logische Container, in den Nachrichten zuverlässig gesendet werden Amazon Simple Queue Service. Es gibt zwei Arten von Warteschlangen: *Standard* und *First-in-First-out-Verfahren* (FIFO). Weitere Informationen zu Warteschlangen und den Unterschieden zwischen diesen Typen finden Sie im [Amazon Simple Queue Service Entwicklerhandbuch](https://docs.aws.amazon.com//AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html).

In diesem Thema wird beschrieben, wie Sie mithilfe von eine Amazon Simple Queue Service Warteschlange erstellen, auflisten, löschen und deren URL abrufen. AWS SDK für Java

Die in den folgenden Beispielen verwendete `sqsClient` Variable kann aus dem folgenden Codeausschnitt erstellt werden.

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

Wenn Sie eine `SqsClient` mit der statischen `create()` Methode erstellen, konfiguriert das SDK die Region mithilfe der [Standardregion-Anbieterkette](region-selection.md#default-region-provider-chain) und die Anmeldeinformationen mithilfe der [Standard-Anbieterkette für Anmeldeinformationen](credentials-chain.md).

## Erstellen einer Warteschlange
<a name="sqs-create-queue"></a>

Verwenden Sie die `SqsClient’s` `createQueue` Methode und stellen Sie ein `[CreateQueueRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/CreateQueueRequest.html)` Objekt bereit, das die Warteschlangenparameter beschreibt, wie im folgenden Codeausschnitt dargestellt.

 **Importe** 

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

Das [vollständige Beispiel](https://github.com/awsdocs/aws-doc-sdk-examples/blob/cf25559da654a7b74bec039c0ab9397dc5951dd4/javav2/example_code/sqs/src/main/java/com/example/sqs/SQSExample.java#L52) finden Sie unter. GitHub

## Auflisten von Warteschlangen
<a name="sqs-list-queues"></a>

Um die Amazon Simple Queue Service Warteschlangen für Ihr Konto aufzulisten, rufen Sie die `SqsClient’s` `listQueues` Methode mit einem `[ListQueuesRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/ListQueuesRequest.html)` Objekt auf.

Wenn Sie die Form der [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())Methode verwenden, die keine Parameter akzeptiert, gibt der Dienst *alle Warteschlangen zurück — bis zu 1.000 Warteschlangen*. 

Sie können dem `[ListQueuesRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/ListQueuesRequest.html)` Objekt ein Präfix für den Warteschlangennamen angeben, um die Ergebnisse auf Warteschlangen zu beschränken, die diesem Präfix entsprechen, wie im folgenden Code gezeigt.

 **Importe** 

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

Das [vollständige Beispiel](https://github.com/awsdocs/aws-doc-sdk-examples/blob/cf25559da654a7b74bec039c0ab9397dc5951dd4/javav2/example_code/sqs/src/main/java/com/example/sqs/SQSExample.java#L79) finden Sie unter. GitHub

## Abrufen der URL für eine Warteschlange
<a name="sqs-get-queue-url"></a>

Der folgende Code zeigt, wie Sie die URL für eine Warteschlange abrufen, indem Sie die `SqsClient’s` `getQueueUrl` Methode mit einem `[GetQueueUrlRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/GetQueueUrlRequest.html)` Objekt aufrufen.

 **Importe** 

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

Das [vollständige Beispiel](https://github.com/awsdocs/aws-doc-sdk-examples/blob/7486a1a092aa8e16a21698ef26f9d524fef62e55/javav2/example_code/sqs/src/main/java/com/example/sqs/SQSExample.java#L70) finden Sie unter GitHub.

## Löschen einer Warteschlange
<a name="sqs-delete-queue"></a>

Geben Sie die [URL](#sqs-get-queue-url) der Warteschlange für das `[DeleteQueueRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/DeleteQueueRequest.html)` Objekt an. Rufen Sie dann die `SqsClient’s` `deleteQueue` Methode zum Löschen einer Warteschlange auf, wie im folgenden Code gezeigt.

 **Importe** 

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

Das [vollständige Beispiel](https://github.com/awsdocs/aws-doc-sdk-examples/blob/6240df86c5f17eae1e23d1139d1435c7dc4b2a11/javav2/example_code/sqs/src/main/java/com/example/sqs/DeleteQueue.java#L48) finden Sie unter GitHub.

## Weitere Informationen
<a name="more-information"></a>
+  [CreateQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html)in der Amazon Simple Queue Service API-Referenz
+  [GetQueueUrl](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueUrl.html)in der Amazon Simple Queue Service API-Referenz
+  [ListQueues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ListQueues.html)in der Amazon Simple Queue Service API-Referenz
+  [DeleteQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteQueue.html)in der Amazon Simple Queue Service API-Referenz

# Amazon Simple Queue Service Nachrichten senden, empfangen und löschen
<a name="examples-sqs-messages"></a>

Eine Nachricht ist ein Datenabschnitt, der von verteilten Komponenten gesendet und empfangen werden kann. Nachrichten werden immer mit einer [SQS-Warteschlange](examples-sqs-message-queues.md) geliefert.

Die in den folgenden Beispielen verwendete `sqsClient` Variable kann aus dem folgenden Codeausschnitt erstellt werden.

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

Wenn Sie eine `SqsClient` mit der statischen `create()` Methode erstellen, konfiguriert das SDK die Region mithilfe der [Standardregion-Anbieterkette](region-selection.md#default-region-provider-chain) und die Anmeldeinformationen mithilfe der [Standard-Anbieterkette für Anmeldeinformationen](credentials-chain.md).

## Senden einer Nachricht
<a name="sqs-message-send"></a>

Fügen Sie einer Amazon Simple Queue Service Warteschlange eine einzelne Nachricht hinzu, indem Sie die SqsClient `sendMessage` Client-Methode aufrufen. Geben Sie ein [SendMessageRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/SendMessageRequest.html)Objekt an, das die [URL](examples-sqs-message-queues.md#sqs-get-queue-url), den Nachrichtentext und den optionalen Verzögerungswert (in Sekunden) der Warteschlange enthält.

 **Importe** 

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

## Senden Sie mehrere Nachrichten in einer Anfrage
<a name="sqs-messages-send-multiple"></a>

Senden mehrerer Nachrichten in einer einzigen Anforderung unter Verwendung der `sendMessageBatch`-Methode des SqsClient . Diese Methode verwendet eine [SendMessageBatchRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/SendMessageBatchRequest.html), die die URL der Warteschlange und eine Liste der zu sendenden Nachrichten enthält. (Jede Nachricht ist eine [SendMessageBatchRequestEntry](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/SendMessageBatchRequestEntry.html).) Sie können das Senden einer bestimmten Nachricht auch verzögern, indem Sie einen Verzögerungswert für die Nachricht festlegen.

 **Importe** 

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

Das [vollständige Beispiel](https://github.com/awsdocs/aws-doc-sdk-examples/blob/cf25559da654a7b74bec039c0ab9397dc5951dd4/javav2/example_code/sqs/src/main/java/com/example/sqs/SQSExample.java#L133) finden Sie unter GitHub.

## Nachrichten abrufen
<a name="sqs-messages-receive"></a>

Abrufen von aktuell in der Warteschlange enthaltenen Nachrichten durch Aufruf der `receiveMessage`-Methode des SqsClient . Diese Methode verwendet eine [ReceiveMessageRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/ReceiveMessageRequest.html), die die Warteschlangen-URL enthält. Sie können auch die maximale Anzahl von Nachrichten angeben, die zurückgegeben werden soll. Nachrichten werden als Liste von [Message](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/Message.html)-Objekten zurückgegeben.

 **Importe** 

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

Das [vollständige Beispiel](https://github.com/awsdocs/aws-doc-sdk-examples/blob/cf25559da654a7b74bec039c0ab9397dc5951dd4/javav2/example_code/sqs/src/main/java/com/example/sqs/SQSExample.java#L148) finden Sie unter GitHub.

## Löschen Sie eine Nachricht nach Erhalt
<a name="sqs-messages-delete"></a>

Nachdem Sie eine Nachricht empfangen und ihren Inhalt verarbeitet haben, löschen Sie die Nachricht aus der Warteschlange, indem Sie das Empfangs-Handle und die Warteschlangen-URL der Nachricht an die `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))Methode senden.

 **Importe** 

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

Das [vollständige Beispiel](https://github.com/awsdocs/aws-doc-sdk-examples/blob/cf25559da654a7b74bec039c0ab9397dc5951dd4/javav2/example_code/sqs/src/main/java/com/example/sqs/SQSExample.java#L187) finden Sie unter GitHub.

## Weitere Infos
<a name="more-info"></a>
+  [So funktionieren Amazon Simple Queue Service Warteschlangen](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-basic-architecture.html) im Amazon Simple Queue Service Entwicklerhandbuch
+  [SendMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)in der Amazon Simple Queue Service API-Referenz
+  [SendMessageBatch](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessageBatch.html)in der Amazon Simple Queue Service API-Referenz
+  [ReceiveMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html)in der Amazon Simple Queue Service API-Referenz
+  [DeleteMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html)in der Amazon Simple Queue Service API-Referenz