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.
Einrichten der Zeitbeschränkung für die Sichtbarkeit inAmazon SQS
Wenn eine Nachricht in Amazon SQS empfangen wird, verbleibt sie bis zum Löschen in der Warteschlange. So wird ihr Erhalt sichergestellt. Eine empfangene, aber nicht gelöschte Nachricht erscheint erst nach Ablauf einer bestimmten Zeitbeschränkung für die Sichtbarkeit in nachfolgenden Anforderungen. Dadurch wird gewährleistet, dass die Nachricht nicht mehrmals empfangen wird, bevor sie verarbeitet und gelöscht werden kann.
Anmerkung
Bei Nutzung von Standard-Warteschlangen kann durch die Zeitbeschränkung für die Sichtbarkeit nicht garantiert werden, dass eine Nachricht mehrmals empfangen wird. Wenn Sie eine Standard-Warteschlange verwenden, achten Sie darauf, dass Ihr Code mit dem Fall umgehen kann, dass dieselbe Nachricht mehrmals eingeht.
Einrichten der Zeitbeschränkung für die Sichtbarkeit einer einzelnen Nachricht
Wenn Sie eine Nachricht erhalten haben, können Sie die Zeitbescheinigung für die Sichtbarkeit durch Übergeben ihrer Empfangsnachricht in einerChangeMessageVisibilityRequestdie Sie an die AmazonSQS-Klasse weitergebenchangeMessageVisibility
-Methode.
Importe
import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder;
Code
AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); // Get the receipt handle for the first message in the queue. String receipt = sqs.receiveMessage(queue_url) .getMessages() .get(0) .getReceiptHandle(); sqs.changeMessageVisibility(queue_url, receipt, timeout);
Auf GitHub finden Sie ein vollständiges Beispiel
Einrichten der Zeitbeschränkung für die Sichtbarkeit mehrerer Nachrichten auf einmal
Sie können die Zeitbeschränkung für die Sichtbarkeit mehrerer Nachrichten auf einmal einrichten, indem Sie eine Liste mit ChangeMessageVisibilityBatchRequestEntry-Objekten erstellen. Dabei sollte jedes Objekt eine Zeichenfolge mit eindeutiger ID sowie eine Empfangsnachricht enthalten. Anschließend übergeben Sie die Liste der changeMessageVisibilityBatch
-Methode der Amazon SQS-Client-Klasse.
Importe
import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.ChangeMessageVisibilityBatchRequestEntry; import java.util.ArrayList; import java.util.List;
Code
AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); List<ChangeMessageVisibilityBatchRequestEntry> entries = new ArrayList<ChangeMessageVisibilityBatchRequestEntry>(); entries.add(new ChangeMessageVisibilityBatchRequestEntry( "unique_id_msg1", sqs.receiveMessage(queue_url) .getMessages() .get(0) .getReceiptHandle()) .withVisibilityTimeout(timeout)); entries.add(new ChangeMessageVisibilityBatchRequestEntry( "unique_id_msg2", sqs.receiveMessage(queue_url) .getMessages() .get(0) .getReceiptHandle()) .withVisibilityTimeout(timeout + 200)); sqs.changeMessageVisibilityBatch(queue_url, entries);
Auf GitHub finden Sie ein vollständiges Beispiel
Weitere Infos
-
Zeitbeschränkung für die SichtbarkeitimAmazon SQSEntwicklerhandbuch
-
SetQueueAttributesimAmazon SQS-API-Referenz
-
GetQueueAttributesimAmazon SQS-API-Referenz
-
ReceiveMessageimAmazon SQS-API-Referenz
-
ChangeMessageVisibilityimAmazon SQS-API-Referenz
-
ChangeMessageVisibilityBatchimAmazon SQS-API-Referenz