Mengirim, Menerima, dan Menghapus Pesan Amazon SQS - AWS SDK untuk C++

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

Mengirim, Menerima, dan Menghapus Pesan Amazon SQS

Pesan selalu dikirim menggunakan antrean SQS. Contoh C++ ini menunjukkan cara menggunakan pesan AWS SDK untuk C++ untuk mengirim, menerima, dan menghapus pesan Amazon SQS dari antrian SQS.

Prasyarat

Sebelum Anda mulai, kami sarankan Anda membaca Memulai menggunakan AWS SDK untuk C++.

Unduh kode contoh dan buat solusinya seperti yang dijelaskan dalamMemulai contoh kode.

Untuk menjalankan contoh, profil pengguna yang digunakan kode Anda untuk membuat permintaan harus memiliki izin yang tepat AWS (untuk layanan dan tindakan). Untuk informasi selengkapnya, lihat Menyediakan AWS kredensi.

Kirim Pesan

Anda dapat menambahkan satu pesan ke antrian Amazon SQS dengan memanggil fungsi anggota SQSClient kelasSendMessage. Anda menyediakan SendMessageRequestobjek yang SendMessage berisi URL antrian, isi pesan, dan nilai penundaan opsional (dalam hitungan detik).

Termasuk

#include <aws/core/Aws.h> #include <aws/sqs/SQSClient.h> #include <aws/sqs/model/SendMessageRequest.h> #include <iostream>

Kode

Aws::SQS::SQSClient sqsClient(clientConfiguration); Aws::SQS::Model::SendMessageRequest request; request.SetQueueUrl(queueUrl); request.SetMessageBody(messageBody); const Aws::SQS::Model::SendMessageOutcome outcome = sqsClient.SendMessage(request); if (outcome.IsSuccess()) { std::cout << "Successfully sent message to " << queueUrl << std::endl; } else { std::cerr << "Error sending message to " << queueUrl << ": " << outcome.GetError().GetMessage() << std::endl; }

Lihat contoh lengkapnya.

Menerima Pesan

Ambil pesan apa pun yang saat ini berada dalam antrian dengan memanggil fungsi ReceiveMessage anggota SQSClient kelas, meneruskannya URL antrian. Pesan dikembalikan sebagai daftar objek Pesan.

Termasuk

#include <aws/core/Aws.h> #include <aws/sqs/SQSClient.h> #include <aws/sqs/model/ReceiveMessageRequest.h> #include <iostream>

Kode

Aws::SQS::SQSClient sqsClient(clientConfiguration); Aws::SQS::Model::ReceiveMessageRequest request; request.SetQueueUrl(queueUrl); request.SetMaxNumberOfMessages(1); const Aws::SQS::Model::ReceiveMessageOutcome outcome = sqsClient.ReceiveMessage( request); if (outcome.IsSuccess()) { const Aws::Vector<Aws::SQS::Model::Message> &messages = outcome.GetResult().GetMessages(); if (!messages.empty()) { const Aws::SQS::Model::Message &message = messages[0]; std::cout << "Received message:" << std::endl; std::cout << " MessageId: " << message.GetMessageId() << std::endl; std::cout << " ReceiptHandle: " << message.GetReceiptHandle() << std::endl; std::cout << " Body: " << message.GetBody() << std::endl << std::endl; } else { std::cout << "No messages received from queue " << queueUrl << std::endl; } } else { std::cerr << "Error receiving message from queue " << queueUrl << ": " << outcome.GetError().GetMessage() << std::endl; }

Lihat contoh lengkapnya.

Hapus Pesan setelah Diterima

Setelah menerima pesan dan memproses isinya, hapus pesan dari antrian dengan mengirimkan tanda terima pesan dan URL antrian ke fungsi DeleteMessage anggota SQSClient kelas.

Termasuk

#include <aws/core/Aws.h> #include <aws/sqs/SQSClient.h> #include <aws/sqs/model/DeleteMessageRequest.h> #include <iostream>

Kode

Aws::SQS::Model::DeleteMessageRequest request; request.SetQueueUrl(queueUrl); request.SetReceiptHandle(messageReceiptHandle); const Aws::SQS::Model::DeleteMessageOutcome outcome = sqsClient.DeleteMessage( request); if (outcome.IsSuccess()) { std::cout << "Successfully deleted message from queue " << queueUrl << std::endl; } else { std::cerr << "Error deleting message from queue " << queueUrl << ": " << outcome.GetError().GetMessage() << std::endl; }

Lihat contoh lengkapnya.

Info Selengkapnya