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.
Senden, Empfangen und Löschen von Amazon Simple Queue Service Nachrichten
Eine Nachricht ist ein Datenabschnitt, der von verteilten Komponenten gesendet und empfangen werden kann. Nachrichten werden immer mit einer SQS-Warteschlange geliefert.
Die sqsClient
Variable, die in den folgenden Beispielen verwendet wird, kann aus dem folgenden Codeausschnitt erstellt werden.
SqsClient sqsClient = SqsClient.create();
Wenn Sie ein SqsClient
mit der statischen create()
Methode erstellen, konfiguriert das SDK die Region mithilfe der standardmäßigen Regionsanbieterkette und die Anmeldeinformationen mithilfe der standardmäßigen Anbieterkette für Anmeldeinformationen.
Senden einer Nachricht
Fügen Sie einer -Amazon Simple Queue ServiceWarteschlange eine einzelne Nachricht hinzu, indem Sie die SqsClient Client-sendMessage
Methode aufrufen. Geben Sie ein SendMessageRequest
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 mehrerer Nachrichten in einer Anforderung
Senden mehrerer Nachrichten in einer einzigen Anforderung unter Verwendung der sendMessageBatch
-Methode des SqsClient . Diese Methode verwendet eine SendMessageBatchRequest
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);
Sehen Sie sich das vollständige Beispiel
Nachrichten abrufen
Abrufen von aktuell in der Warteschlange enthaltenen Nachrichten durch Aufruf der receiveMessage
-Methode des SqsClient . Diese Methode verwendet eine ReceiveMessageRequest
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;
Sehen Sie sich das vollständige Beispiel
Löschen einer Nachricht nach Erhalt
Nachdem Sie eine Nachricht empfangen und ihren Inhalt verarbeitet haben, löschen Sie die Nachricht aus der Warteschlange, indem Sie den Empfangs-Handle und die Warteschlangen-URL der Nachricht an die SqsClient's
deleteMessage
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); }
Sehen Sie sich das vollständige Beispiel
Weitere Infos
-
Funktionsweise von Amazon Simple Queue ServiceWarteschlangen im -Amazon Simple Queue ServiceEntwicklerhandbuch
-
SendMessage in der Amazon Simple Queue Service API-Referenz zu
-
SendMessageBatch in der Amazon Simple Queue Service API-Referenz zu
-
ReceiveMessage in der Amazon Simple Queue Service API-Referenz zu
-
DeleteMessage in der Amazon Simple Queue Service API-Referenz zu