All Products
Search
Document Center

Simple Message Queue (formerly MNS):BatchReceiveMessage

Last Updated:Mar 12, 2026

Menerima hingga 16 pesan dari sebuah Antrian dalam satu panggilan.

Setelah diterima, pesan tersebut memasuki status Inactive selama periode VisibilityTimeout Antrian. Hapus pesan tersebut dalam jendela waktu ini setelah diproses. Jika tidak, pesan akan kembali ke status Active dan tersedia untuk dikirim ulang.

Otorisasi

Secara default, hanya Akun Alibaba Cloud yang dapat memanggil operasi ini. Berikan izin yang diperlukan kepada Pengguna RAM sebelum mereka memanggil operasi ini. Untuk detailnya, lihat Kebijakan izin dan contoh.

PropertiNilai
APIBatchReceiveMessage
Actionmns:BatchReceiveMessage
Resourceacs:mns:$region:$accountid:/queues/$queueName/messages

Cara kerja

  1. Kirim permintaan GET dengan parameter numOfMessages untuk menerima pesan dari Antrian.

  2. Pesan yang dikembalikan langsung memasuki status Inactive dan disembunyikan dari konsumen lain.

  3. Proses setiap pesan, lalu panggil DeleteMessage dengan ReceiptHandle pesan tersebut sebelum NextVisibleTime.

  4. Jika pesan tidak dihapus dalam periode VisibilityTimeout, pesan tersebut akan kembali ke status Active dan dapat dikonsumsi lagi.

VisibilityTimeout dikonfigurasi pada tingkat Antrian melalui CreateQueue.

Permintaan

Baris permintaan

GET /queues/$queueName/messages?numOfMessages=16&waitseconds=10 HTTP/1.1

Parameter URI

ParameterTipeWajibContohDeskripsi
numOfMessagesIntegerYa10Jumlah maksimum pesan yang akan diterima.
waitsecondsIntegerTidak0Waktu tunggu long polling, dalam detik. Saat tidak ada pesan yang tersedia, permintaan akan ditahan hingga pesan tiba atau waktu tunggu habis. Nilai default mengikuti PollingWaitSeconds Antrian jika tidak ditentukan. Lihat CreateQueue.

Perilaku long polling

Saat waitseconds diatur (atau nilai default PollingWaitSeconds Antrian berlaku), permintaan akan tetap terbuka hingga pesan tiba atau waktu tunggu habis. Pesan yang ditulis ke Antrian selama periode ini akan dikirimkan segera. Untuk informasi mengenai kedua mode polling tersebut, lihat Short polling dan long polling.

Catatan

SMQ membatasi jumlah permintaan long polling konkuren berdasarkan jumlah permintaan, durasi tunggu, dan alamat IP klien. Jika batas ini terlampaui, SMQ langsung mengembalikan 404 MessageNotExist alih-alih menahan permintaan. Untuk menghindari biaya yang tidak perlu, kurangi jumlah permintaan long polling konkuren dan gunakan durasi tunggu yang sesuai. Untuk menaikkan batas tersebut, kirim Tiket.

Header permintaan

Tidak ada header khusus operasi.

Isi permintaan

Tidak ada.

Respons

Kode status HTTP

HTTP/1.1 200 OK

Header respons

Tidak ada header khusus operasi.

Badan respons

Badan respons berformat XML. Setiap elemen <Message> di dalam <Messages> berisi bidang-bidang berikut:

ParameterTipeContohDeskripsi
MessageIdString5F290C926D472878-2-14D9529A8FA-20000\*\*\*\*Pengidentifikasi unik pesan dalam Antrian.
ReceiptHandleString1-ODU4OTkzNDU5My0xNDMyNzI3ODI3LTItOA==Handle untuk menghapus atau memodifikasi pesan selama dalam status Inactive. Valid hingga NextVisibleTime.
MessageBodyStringThis is test message 1.Isi pesan.
MessageBodyMD5StringC5DD56A39F5F7BB8B3337C6D11B6\*\*\*\*Hash MD5 dari isi pesan.
EnqueueTimeLong1250700979248Waktu pesan dikirim ke Antrian. Stempel waktu UNIX dalam milidetik.
NextVisibleTimeLong1250700799348Waktu pesan menjadi terlihat kembali. Stempel waktu UNIX dalam milidetik.
FirstDequeueTimeLong1250700779318Waktu pesan pertama kali dikonsumsi. Stempel waktu UNIX dalam milidetik.
DequeueCountInteger1Jumlah total kali pesan telah dikonsumsi.

Contoh

Contoh permintaan

GET /queues/$queueName/messages?numOfMessages=16 HTTP/1.1
Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
Date: Wed, 28 May 2012 22:32:00 GMT
x-mns-version: 2015-06-06
Authorization: MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXA****

Contoh respons

HTTP/1.1 200 OK
Content-Type: text/xml;charset=utf-8
Content-Length: 500
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>
    <ReceiptHandle>1-ODU4OTkzNDU5My0xNDMyNzI3ODI3LTItOA==</ReceiptHandle>
    <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6****</MessageBodyMD5>
    <MessageBody>This is test message 1.</MessageBody>
    <EnqueueTime>1250700979248</EnqueueTime>
    <NextVisibleTime>1250700799348</NextVisibleTime>
    <FirstDequeueTime>1250700779318</FirstDequeueTime>
    <DequeueCount>1</DequeueCount>
    <Priority>8</Priority>
  </Message>
  <Message>
    <ReceiptHandle>1-ODU4OTkzNDU5My0xNDMyNzI3MjQwLTEtOA==</ReceiptHandle>
    <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6****</MessageBodyMD5>
    <MessageBody>This is test message 2.</MessageBody>
    <EnqueueTime>1250700979252</EnqueueTime>
    <NextVisibleTime>1250700799350</NextVisibleTime>
    <FirstDequeueTime>1250700779330</FirstDequeueTime>
    <DequeueCount>1</DequeueCount>
    <Priority>8</Priority>
  </Message>
</Messages>

Kode kesalahan

Kode kesalahanPesan kesalahanKode status HTTPDeskripsi
QueueNotExistThe queue name you provided is not exist.404Antrian yang ditentukan tidak ada. Buat Antrian terlebih dahulu.
MessageNotExistMessage not exist.404Tidak ada pesan yang terlihat dalam Antrian. Hal ini juga terjadi ketika batas long polling konkuren terlampaui.