Mengatur Timeout Visibilitas diAmazon SQS - AWS SDK for Java 1.x

Kami mengumumkan yang akan datang end-of-support untuk AWS SDK for Java (v1). Kami menyarankan Anda bermigrasi ke AWS SDK for Java v2. Untuk tanggal, detail tambahan, dan informasi tentang cara bermigrasi, silakan merujuk ke pengumuman tertaut.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengatur Timeout Visibilitas diAmazon SQS

Ketika pesan diterima diAmazon SQS, tetap pada antrian sampai dihapus untuk memastikan penerimaan. Sebuah pesan yang diterima, tetapi tidak dihapus, akan tersedia dalam permintaan berikutnya setelah diberikanbatas waktu visibilitasuntuk membantu mencegah pesan diterima lebih dari sekali sebelum dapat diproses dan dihapus.

catatan

Saat menggunakanAntrean standar, waktu tunggu visibilitas bukanlah jaminan untuk menerima pesan dua kali. Jika Anda menggunakan antrian standar, pastikan kode Anda dapat menangani kasus di mana pesan yang sama telah dikirimkan lebih dari satu kali.

Mengatur Timeout Visibilitas Pesan untuk Satu Pesan

Ketika Anda telah menerima pesan, Anda dapat memodifikasi batas waktu visibilitas dengan melewati pegangan tanda terima dalamChangeMessageVisibilityRequestyang Anda lewati ke kelas AmazonSqs 'changeMessageVisibilitymetode.

Impor

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder;

Kode

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

Lihatcontoh lengkapdi GitHub.

Mengatur Timeout Visibilitas Pesan untuk Beberapa Pesan sekaligus

Untuk mengatur batas waktu tunggu visibilitas pesan untuk beberapa pesan sekaligus, buat daftarChangeMessageVisibilityBatchRequestEntryobjek, masing-masing berisi string ID unik dan pegangan tanda terima. Kemudian, lewati daftar keAmazon SQSclass clientchangeMessageVisibilityBatchmetode.

Impor

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;

Kode

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

Lihatcontoh lengkapdi GitHub.

Info Selengkapnya