Mengirim beberapa pesan ke antrian dalam satu operasi.
Informasi otorisasi
Secara default, hanya akun Alibaba Cloud yang dapat memanggil operasi ini. Pengguna RAM hanya dapat melakukannya setelah diberikan izin terkait. Tabel berikut menjelaskan informasi otorisasi untuk operasi ini. Untuk detail lebih lanjut, lihat Kebijakan Izin dan Contoh.
Nama | Nilai |
API | BatchSendMessage |
Aksi | mns:BatchSendMessage |
Resource | acs:mns:$region:$accountid:/queues/$queueName/messages |
Catatan penggunaan
Anda dapat memanggil operasi ini untuk mengirim hingga 16 pesan ke antrian dalam satu waktu. Ukuran maksimum total pesan yang dapat dikirim sekaligus adalah 64 KB. Jika parameter DelaySeconds tidak ditentukan saat mengirim pesan, pesan tersebut akan langsung dikonsumsi. Untuk menunda konsumsi pesan secara berkala, tentukan parameter
DelaySecondssaat mengirim pesan ke antrian.Jika Anda menetapkan parameter
DelaySecondsdengan nilai lebih besar dari 0, pesan akan berstatus Ditunda setelah dikirim ke antrian. Pesan tidak dapat dikonsumsi hingga periode yang ditentukan oleh parameterDelaySecondsselesai, dan status pesan berubah menjadi Aktif. Jika nilai parameterDelaySecondsuntuk pesan berbeda dari nilai parameterDelaySecondsuntuk antrian, maka nilai parameterDelaySecondsuntuk pesan yang berlaku.Saat memanggil operasi BatchSendMessage, QPS (permintaan per detik) adalah hasil kali jumlah pesan dan QPS. Misalnya, jika Anda mengirim 10 pesan dengan QPS 100, QPS untuk satu antrian menjadi 100×10=1.000.
Sebelum memanggil API ini untuk mengirim pesan, enkode badan pesan menggunakan Base64 untuk mencegah kesalahan tak terduga akibat karakter khusus.
Permintaan
Permintaan terdiri dari bagian-bagian berikut:
Baris Permintaan
POST /queues/$queueName/messages HTTP/1.1Header Permintaan Spesifik Operasi
Tidak ada.
Badan Permintaan
Badan permintaan dalam format XML. Parameter beberapa pesan disertakan dalam badan permintaan.
Parameter
Tipe
Diperlukan
Contoh
Deskripsi
MessageBody
String
Ya
Ini adalah pesan uji 1.
Badan pesan.
DelaySeconds
Integer
Tidak
60
Periode penundaan setelah pesan dikirim ke antrian dapat dikonsumsi.
Nilai valid: 0 hingga 604800. Unit: detik.
Nilai default: 0.
Respons
Respons terdiri dari bagian-bagian berikut:
Kode Status HTTP
HTTP/1.1 201 CreatedHeader Respons Spesifik Operasi
Tidak ada.
Badan Respons
Badan respons dalam format XML. Parameter MessageId dan MessageBodyMD5 dari beberapa pesan dikembalikan.
Parameter
Tipe
Contoh
Deskripsi
MessageId
String
5F290C926D472878-2-14D9529A8FA-20000****
ID pesan. ID pesan unik dalam antrian.
MessageBodyMD5
String
C5DD56A39F5F7BB8B3337C6D11B6****
Hash MD5 dari badan pesan.
Contoh
Contoh Permintaan
POST /queues/$queueName/messages HTTP/1.1
Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
Date: Wed, 18 Mar 2012 12:00:00 GMT
Content-Length:500
Content-Type:text/xml;charset=utf-8
x-mns-version: 2015-06-06
Authorization: MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXA****
<?xml version="1.0" encoding="UTF-8"?>
<Messages xmlns="http://mns.aliyuncs.com/doc/v1/">
<Message>
<MessageBody>Ini adalah pesan uji 1.</MessageBody>
<DelaySeconds>60</DelaySeconds>
<Priority>1</Priority>
</Message>
<Message>
<MessageBody>Ini adalah pesan uji 2.</MessageBody>
<DelaySeconds>60</DelaySeconds>
<Priority>1</Priority>
</Message>
</Messages> Contoh Respons
Semua pesan berhasil dikirim:
HTTP/1.1 201 Created Content-Length:120 Content-Type:text/xml;charset=utf-8 x-mns-request-id:512B2A634403E52B1956**** x-mns-version: 2015-06-06 <?xml version="1.0" encoding="UTF-8"?> <Messages xmlns="http://mns.aliyuncs.com/doc/v1/"> <Message> <MessageId>5F290C926D472878-2-14D9529A8FA-20000****</MessageId> <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6****</MessageBodyMD5> </Message> <Message> <MessageId>5F290C926D472878-2-14D9529A8FA-20000****</MessageId> <MessageBodyMD5>377AC5283D8765C9CEE4E0EA353D****</MessageBodyMD5> </Message> </Messages>Beberapa pesan gagal dikirim:
HTTP/1.1 500 Content-Length:120 Content-Type:text/xml;charset=utf-8 x-mns-request-id:512B2A634403E52B1956**** x-mns-version: 2015-06-06 <?xml version="1.0" encoding="UTF-8"?> <Messages xmlns="http://mns.aliyuncs.com/doc/v1/"> <Message> <MessageId>5F290C926D472878-2-14D9529A8FA-20000****</MessageId> <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6****</MessageBodyMD5> </Message> <Message> <MessageId>5F290C926D472878-2-14D9529A8FA-20000****</MessageId> <MessageBodyMD5>377AC5283D8765C9CEE4E0EA353D****</MessageBodyMD5> </Message> <Message> <ErrorCode>InternalError</ErrorCode> <ErrorMessage>Kesalahan internal.</ErrorMessage> </Message> </Messages>
Kode kesalahan
Kode kesalahan | Pesan kesalahan | Kode status HTTP | Deskripsi |
QueueNotExist | Nama antrian yang Anda berikan tidak ada. | 404 | Pesan kesalahan yang dikembalikan karena antrian yang ditentukan tidak ada. Buat antrian. |
MalformedXML | XML yang Anda berikan tidak diformat dengan baik. | 400 | Pesan kesalahan yang dikembalikan karena format file XML tidak valid. |
InvalidArgument | Nilai Element harus antara Low dan High detik/bita. | 400 | Pesan kesalahan yang dikembalikan karena nilai parameter tidak valid. Anda harus menentukan nilai yang valid seperti yang diminta. |