Version AWS SDK for Java 1.x wurde am 31. Juli 2024 in den Wartungsmodus versetzt und wird end-of-support
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öschenAmazon SQSNachrichten
In diesem Thema wird beschrieben, wie Sie Amazon SQS-Nachrichten senden, empfangen und löschen. Nachrichten werden immer mit einer SQS-Warteschlange geliefert.
Senden einer Nachricht
Fügen Sie eine einzelne Nachricht zu einerAmazon SQSWarteschlange durch Aufrufen des AmazonSQS-ClientssendMessage
-Methode. Geben Sie ein SendMessageRequest-Objekt mit der URL der Warteschlange, dem Nachrichtentext und optional einem Verzögerungswert (in Sekunden) an.
Importe
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);
Auf GitHub finden Sie ein vollständiges Beispiel
Senden mehrerer Nachrichten gleichzeitig
Sie können mehrere Nachrichten in einer einzigen Anforderung senden. Um mehrere Nachrichten zu senden, verwenden Sie den AmazonSQS-ClientsendMessageBatch
Methode, die eineSendMessageBatchRequestenthält die Warteschlangen-URL und eine Liste von -Nachrichten (jeweils einSendMessageBatchRequestEntry) senden. Sie können auch eine optionale Verzögerung pro Nachricht festlegen.
Importe
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);
Auf GitHub finden Sie ein vollständiges Beispiel
Empfangen von Nachrichten
Abrufen von aktuell in der Warteschlange enthaltenen Nachrichten durch Aufruf des AmazonSQS--ClientsreceiveMessage
Übergeben Sie ihr die Warteschlangen-URL. Nachrichten werden als Liste von Message-Objekten zurückgegeben.
Importe
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();
Löschen von Nachrichten nach dem Empfangen
Nach dem Erhalt einer Nachricht und der Verarbeitung der Inhalte können Sie die Nachricht aus der Warteschlange löschen, indem Sie die Empfangsnachricht und die Warteschlangen-URL an den AmazonSQS-Client sendendeleteMessage
-Methode.
Code
for (Message m : messages) {
sqs.deleteMessage(queueUrl, m.getReceiptHandle());
}
Auf GitHub finden Sie ein vollständiges Beispiel
Weitere Infos
-
WieAmazon SQSArbeiten von -WarteschlangenimAmazon SQSEntwicklerhandbuch
-
SendMessageimAmazon SQS-API-Referenz
-
SendMessageBatchimAmazon SQS-API-Referenz
-
ReceiveMessageimAmazon SQS-API-Referenz
-
DeleteMessageimAmazon SQS-API-Referenz