Mengaktifkan Polling Panjang untuk Antrian Pesan Amazon SQS - AWS SDK untuk Java 1.x

AWS SDK untuk Java 1.x telah memasuki mode pemeliharaan pada 31 Juli 2024, dan akan mencapai end-of-supportpada 31 Desember 2025. Kami menyarankan Anda bermigrasi ke AWS SDK for Java 2.xuntuk terus menerima fitur baru, peningkatan ketersediaan, dan pembaruan keamanan.

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

Mengaktifkan Polling Panjang untuk Antrian Pesan Amazon SQS

Amazon SQS menggunakan polling singkat secara default, hanya menanyakan sebagian dari server—berdasarkan distribusi acak berbobot—untuk menentukan apakah ada pesan yang tersedia untuk dimasukkan dalam respons.

Polling panjang membantu mengurangi biaya penggunaan Anda Amazon SQS dengan mengurangi jumlah tanggapan kosong ketika tidak ada pesan yang tersedia untuk dikembalikan sebagai balasan ReceiveMessage atas permintaan yang dikirim ke Amazon SQS antrian dan menghilangkan tanggapan kosong palsu.

catatan

Anda dapat mengatur frekuensi polling yang panjang dari 1-20 detik.

Mengaktifkan Polling Panjang saat Membuat Antrian

Untuk mengaktifkan polling panjang saat membuat Amazon SQS antrian, setel ReceiveMessageWaitTimeSeconds atribut pada CreateQueueRequestobjek sebelum memanggil metode kelas AmazonSQS. createQueue

Impor

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.AmazonSQSException; import com.amazonaws.services.sqs.model.CreateQueueRequest;

Kode

final AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); // Enable long polling when creating a queue CreateQueueRequest create_request = new CreateQueueRequest() .withQueueName(queue_name) .addAttributesEntry("ReceiveMessageWaitTimeSeconds", "20"); try { sqs.createQueue(create_request); } catch (AmazonSQSException e) { if (!e.getErrorCode().equals("QueueAlreadyExists")) { throw e; } }

Lihat contoh lengkapnya di GitHub.

Mengaktifkan Polling Panjang pada Antrian yang Ada

Selain mengaktifkan polling panjang saat membuat antrian, Anda juga dapat mengaktifkannya pada antrian yang ada dengan menyetel SetQueueAttributesRequestsebelum memanggil metode kelas ReceiveMessageWaitTimeSeconds AmazonSQS. setQueueAttributes

Impor

import com.amazonaws.services.sqs.model.SetQueueAttributesRequest;

Kode

SetQueueAttributesRequest set_attrs_request = new SetQueueAttributesRequest() .withQueueUrl(queue_url) .addAttributesEntry("ReceiveMessageWaitTimeSeconds", "20"); sqs.setQueueAttributes(set_attrs_request);

Lihat contoh lengkapnya di GitHub.

Mengaktifkan Polling Panjang pada Tanda Terima Pesan

Anda dapat mengaktifkan polling panjang saat menerima pesan dengan mengatur waktu tunggu dalam hitungan detik pada ReceiveMessageRequestyang Anda berikan ke metode kelas AmazonSQS. receiveMessage

catatan

Anda harus memastikan bahwa batas waktu permintaan AWS klien lebih besar dari waktu polling maksimum yang panjang (20-an) sehingga receiveMessage permintaan Anda tidak habis saat menunggu acara jajak pendapat berikutnya!

Impor

import com.amazonaws.services.sqs.model.ReceiveMessageRequest;

Kode

ReceiveMessageRequest receive_request = new ReceiveMessageRequest() .withQueueUrl(queue_url) .withWaitTimeSeconds(20); sqs.receiveMessage(receive_request);

Lihat contoh lengkapnya di GitHub.

Info Selengkapnya