All Products
Search
Document Center

Simple Message Queue (formerly MNS):ReceiveMessage

Last Updated:Mar 12, 2026

Menerima sebuah pesan dari antrian dan mengaturnya ke status Inactive selama periode VisibilityTimeout antrian tersebut. Panggil DeleteMessage sebelum periode ini berakhir untuk menghapus pesan secara permanen. Jika tidak dihapus tepat waktu, pesan akan kembali ke status Active dan tersedia untuk dikonsumsi lagi.

Informasi otorisasi

Secara default, hanya Akun Alibaba Cloud yang dapat memanggil operasi ini. Untuk memanggilnya sebagai Pengguna Resource Access Management (RAM), berikan izin yang diperlukan kepada pengguna RAM tersebut. Untuk informasi selengkapnya, lihat Kebijakan dan contoh izin.

ItemNilai
Operasi APIReceiveMessage
Actionmns:ReceiveMessage
Resourceacs:mns:$region:$accountid:/queues/$queueName/messages

Sintaksis permintaan

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

Operasi ini tidak memiliki header permintaan atau badan permintaan khusus operasi.

Parameter URI

ParameterTipeWajibContohDeskripsi
waitsecondsIntegerTidak0Waktu tunggu maksimum dalam detik ketika tidak ada pesan yang tersedia. Jika diabaikan, nilai PollingWaitSeconds antrian akan digunakan. Untuk informasi selengkapnya, lihat CreateQueue.

Perilaku long polling

Ketika parameter waitseconds diatur (atau nilai default PollingWaitSeconds antrian diterapkan), server akan menahan koneksi hingga pesan tiba atau periode tunggu berakhir. Setiap pesan yang ditulis ke antrian selama periode ini akan segera dikirimkan.

Kami menyarankan Anda membatasi jumlah permintaan long polling bersamaan dan menentukan periode tunggu yang sesuai. Untuk informasi selengkapnya, lihat Short polling dan long polling.

Catatan

Simple Message Queue (SMQ, sebelumnya MNS) membatasi jumlah permintaan long polling bersamaan berdasarkan total jumlah permintaan, periode tunggu, dan alamat IP sumber. Jika batas ini terlampaui, SMQ langsung mengembalikan error 404 MessageNotExist tanpa menahan permintaan, dan biaya permintaan standar tetap berlaku. Untuk menaikkan batas ini, kirim tiket.

Respons

Kode status HTTP

HTTP/1.1 200 OK

Operasi ini tidak memiliki header respons khusus operasi.

Badan respons

Badan respons dalam format XML dan berisi:

  • Isi pesan dan hash MD5-nya

  • ID pesan unik

  • Receipt handle untuk menghapus atau mengubah pesan selama dalam status Inactive

  • Stempel waktu: waktu enqueue, waktu dequeue pertama, dan waktu visibilitas berikutnya

  • Jumlah dequeue

ParameterTipeContohDeskripsi
MessageIdString5F290C926D472878-2-14D9529A8FA-20000\*\*\*\*Pengidentifikasi unik pesan dalam antrian.
ReceiptHandleString1-ODU4OTkzNDU5My0xNDMyNzI3ODI3LTItOA==Handle untuk menghapus atau mengubah pesan selama dalam status Inactive. Gunakan nilai ini saat memanggil DeleteMessage atau ChangeMessageVisibility. Berlaku hingga NextVisibleTime.
MessageBodyStringThis is a test messageIsi pesan.
MessageBodyMD5StringC5DD56A39F5F7BB8B3337C6D11B6\*\*\*\*Hash MD5 dari isi pesan.
EnqueueTimeLong1250700979248Waktu pesan dikirim ke antrian. Stempel waktu UNIX dalam milidetik sejak 1 Januari 1970 pukul 00:00:00 UTC.
NextVisibleTimeLong1250700799348Waktu pesan menjadi terlihat kembali jika tidak dihapus. Stempel waktu UNIX dalam milidetik sejak 1 Januari 1970 pukul 00:00:00 UTC.
FirstDequeueTimeLong1250700779318Waktu pesan pertama kali dikonsumsi. Stempel waktu UNIX dalam milidetik sejak 1 Januari 1970 pukul 00:00:00 UTC.
DequeueCountInteger1Jumlah kali pesan telah dikonsumsi.

Contoh

Permintaan contoh

GET /queues/$queueName/messages 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****

Respons contoh

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"?>
<Message xmlns="http://mns.aliyuncs.com/doc/v1/">
    <MessageId>5F290C926D472878-2-14D9529A8FA-20000****</MessageId>
    <ReceiptHandle>1-ODU4OTkzNDU5My0xNDMyNzI3ODI3LTItOA==</ReceiptHandle>
    <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6****</MessageBodyMD5>
    <MessageBody>This is a test message</MessageBody>
    <EnqueueTime>1250700979248</EnqueueTime>
    <NextVisibleTime>1250700799348</NextVisibleTime>
    <FirstDequeueTime>1250700779318</FirstDequeueTime>
    <DequeueCount>1</DequeueCount>
    <Priority>8</Priority>
</Message>

Kode error

Kode errorPesan errorKode status HTTPDeskripsi
QueueNotExistThe queue name you provided is not exist.404Antrian yang ditentukan tidak ada. Buat antrian sebelum memanggil operasi ini.
MessageNotExistMessage not exist.404Tidak ada pesan yang terlihat dalam antrian.

Langkah selanjutnya