Mengaktifkan Jajak pendapat panjangAmazon SQSAntrean - AWS SDK for Java 1.x

AWS SDK for 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 Jajak pendapat panjangAmazon SQSAntrean

Amazon SQSmenggunakanJajak pendapatsecara default, menanyakan hanya subset dari server—berdasarkan distribusi acak tertimbang — untuk menentukan apakah ada pesan yang tersedia untuk dimasukkan dalam respons.

Jajak pendapat panjang membantu mengurangi biaya penggunaanAmazon SQSdengan mengurangi jumlah tanggapan kosong ketika tidak ada pesan yang tersedia untuk kembali sebagai balasan ReceiveMessage permintaan dikirim keAmazon SQSantrian dan menghilangkan tanggapan kosong palsu.

catatan

Anda dapat mengatur frekuensi polling panjang dari1-20 detik.

Mengaktifkan Polling Panjang saat Membuat Antrian

Untuk mengaktifkan polling panjang saat membuatAmazon SQSantrian, mengaturReceiveMessageWaitTimeSecondsAtribut padaCreateQueueRequestobjek sebelum memanggil kelas AmazonSqscreateQueuemetode.

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

LihatLengkapi Contohdi GitHub.

Mengaktifkan Polling Panjang pada Antrian yang Ada

Selain mengaktifkan polling panjang saat membuat antrian, Anda juga dapat mengaktifkannya pada antrian yang ada dengan menyetelReceiveMessageWaitTimeSecondspadaSetQueueAttributesRequestsebelum memanggil kelas AmazonSqssetQueueAttributesmetode.

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

LihatLengkapi Contohdi GitHub.

Mengaktifkan Pemungutan Suara Panjang pada Tanda Terima Pesan

Anda dapat mengaktifkan polling panjang saat menerima pesan dengan mengatur waktu tunggu dalam hitungan detik padaReceiveMessageRequestyang Anda suplai ke kelas AmazonSqsreceiveMessagemetode.

catatan

Anda harus memastikan bahwaAWSBatas waktu permintaan klien lebih besar dari waktu jajak pendapat panjang maksimum (20-an) sehingga AndareceiveMessagepermintaan 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);

LihatLengkapi Contohdi GitHub.

Info Selengkapnya