Kami mengumumkan
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 'changeMessageVisibility
metode.
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 lengkap
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 clientchangeMessageVisibilityBatch
metode.
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 lengkap
Info Selengkapnya
-
Timeout Visibilitasdi dalamAmazon SQSPanduan Pengembang
-
setQueueAttributesdi dalamAmazon SQSReferensi API
-
GetQueueAttributesdi dalamAmazon SQSReferensi API
-
ReceiveMessagedi dalamAmazon SQSReferensi API
-
ChangeMessageVisibilitydi dalamAmazon SQSReferensi API
-
ChangeMessageVisibilityBatchdi dalamAmazon SQSReferensi API