AWS SDK untuk Java 1.x telah memasuki mode pemeliharaan pada 31 Juli 2024, dan akan mencapai end-of-support
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
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
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
Info Selengkapnya
-
Amazon SQS Polling Panjang di Panduan Amazon SQS Pengembang
-
CreateQueuedi Referensi Amazon SQS API
-
ReceiveMessagedi Referensi Amazon SQS API
-
SetQueueAttributesdi Referensi Amazon SQS API