Mengirim, menerima, dan menghapus Amazon Simple Queue Service pesan - AWS SDK for Java 2.x

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

Mengirim, menerima, dan menghapus Amazon Simple Queue Service pesan

Pesan adalah sepotong data yang dapat dikirim dan diterima oleh komponen terdistribusi. Pesan selalu dikirimkan menggunakan SQS Queue.

sqsClientVariabel yang digunakan dalam contoh berikut dapat dibuat dari cuplikan berikut.

SqsClient sqsClient = SqsClient.create();

Bila Anda membuat SqsClient dengan menggunakan create() metode statis, SDK akan mengonfigurasi Region menggunakan rantai penyedia wilayah default dan kredensialnya menggunakan rantai penyedia kredensial default.

Kirim pesan

Tambahkan satu pesan ke Amazon Simple Queue Service antrian dengan memanggil sendMessage metode SqsClient klien. Berikan SendMessageRequestobjek yang berisi URL antrian, isi pesan, dan nilai penundaan opsional (dalam hitungan detik).

Impor

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;

Kode

sqsClient.sendMessage(SendMessageRequest.builder() .queueUrl(queueUrl) .messageBody("Hello world!") .delaySeconds(10) .build()); sqsClient.sendMessage(sendMsgRequest);

Kirim beberapa pesan dalam satu permintaan

Kirim lebih dari satu pesan dalam satu permintaan dengan menggunakan SqsClient sendMessageBatch metode ini. Metode ini mengambil SendMessageBatchRequestyang berisi URL antrian dan daftar pesan untuk dikirim. (Setiap pesan adalah a SendMessageBatchRequestEntry.) Anda juga dapat menunda pengiriman pesan tertentu dengan menetapkan nilai penundaan pada pesan.

Impor

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;

Kode

SendMessageBatchRequest sendMessageBatchRequest = SendMessageBatchRequest.builder() .queueUrl(queueUrl) .entries(SendMessageBatchRequestEntry.builder().id("id1").messageBody("Hello from msg 1").build(), SendMessageBatchRequestEntry.builder().id("id2").messageBody("msg 2").delaySeconds(10).build()) .build(); sqsClient.sendMessageBatch(sendMessageBatchRequest);

Lihat sampel lengkapnya di GitHub.

Ambil Pesan

Ambil pesan apa pun yang saat ini berada dalam antrian dengan memanggil metode. SqsClient receiveMessage Metode ini mengambil ReceiveMessageRequestyang berisi URL antrian. Anda juga dapat menentukan jumlah maksimum pesan yang akan dikembalikan. Pesan dikembalikan sebagai daftar objek Pesan.

Impor

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;

Kode

try { ReceiveMessageRequest receiveMessageRequest = ReceiveMessageRequest.builder() .queueUrl(queueUrl) .maxNumberOfMessages(5) .build(); List<Message> messages = sqsClient.receiveMessage(receiveMessageRequest).messages(); return messages; } catch (SqsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return null;

Lihat sampel lengkapnya di GitHub.

Hapus pesan setelah diterima

Setelah menerima pesan dan memproses isinya, hapus pesan dari antrian dengan mengirimkan alamat tanda terima pesan dan URL antrian ke metode. SqsClient's deleteMessage

Impor

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;

Kode

try { for (Message message : messages) { DeleteMessageRequest deleteMessageRequest = DeleteMessageRequest.builder() .queueUrl(queueUrl) .receiptHandle(message.receiptHandle()) .build(); sqsClient.deleteMessage(deleteMessageRequest); }

Lihat sampel lengkapnya di GitHub.

Info Selengkapnya