Menampilkan sebuah pesan dalam antrian tanpa mengubah statusnya.
Deskripsi
PeekMessage mengambil pesan dari antrian yang ditentukan hanya untuk pemeriksaan. Berbeda dengan ReceiveMessage, operasi ini tidak mengubah status pesan—pesan tetap berada dalam status Active dan masih tersedia untuk konsumen lain.
Untuk setiap pesan yang dikembalikan, respons mencakup:
Badan pesan dan hash MD5-nya
ID pesan, yang unik dalam antrian
Prioritas pesan
Stempel waktu saat dimasukkan ke antrian (enqueue)
Stempel waktu dequeue pertama dan jumlah total dequeue
PeekMessage tidak mengembalikan ReceiptHandle. Tanpa receipt handle, Anda tidak dapat menghapus pesan atau mengubah timeout visibilitasnya. Untuk mengonsumsi dan menghapus pesan dari antrian, gunakan ReceiveMessage sebagai gantinya.PeekMessage vs. ReceiveMessage
| Perilaku | PeekMessage | ReceiveMessage |
|---|---|---|
| Status pesan setelah pemanggilan | Tetap Active | Ubah ke Tidak Aktif |
| Visibilitas terhadap konsumen lain | Masih terlihat | Tersembunyi selama periode VisibilityTimeout |
ReceiptHandle dalam respons | Tidak | Ya |
| Dapat menghapus pesan setelah pemanggilan | Tidak | Ya (dengan ReceiptHandle) |
Otorisasi
Secara default, hanya Akun Alibaba Cloud yang dapat memanggil operasi ini. Pengguna RAM harus diberikan izin yang diperlukan. Untuk informasi lebih lanjut, lihat Kebijakan dan contoh izin.
| Item | Nilai |
|---|---|
| Operasi API | PeekMessage |
| Action | mns:PeekMessage |
| Resource | acs:mns:$region:$accountid:/queues/$queueName/messages |
Sintaksis permintaan
GET /queues/$queueName/messages?peekonly=true HTTP/1.1Parameter URI
| Parameter | Wajib | Deskripsi |
|---|---|---|
peekonly | Ya | Harus bernilai true. Menampilkan pesan tanpa mengubah statusnya. |
Header permintaan
Tidak ada header khusus operasi. Hanya header permintaan umum yang diperlukan.
Badan permintaan
Tidak ada.
Respons
Kode status HTTP
Permintaan yang berhasil mengembalikan HTTP/1.1 200 OK.
Header respons
Tidak ada header khusus operasi. Hanya header respons umum yang dikembalikan.
Badan respons
Badan respons dalam format XML dan berisi elemen-elemen berikut:
| Parameter | Tipe | Contoh | Deskripsi |
|---|---|---|---|
| MessageId | String | D6D5F7C9C12D14A4-1-14D953EFC72-20000**** | ID pesan unik dalam antrian. |
| MessageBody | String | This is a test message. | Badan pesan. |
| MessageBodyMD5 | String | F9360F391579E71CA77BC5D50242**** | Hash MD5 dari badan pesan. |
| EnqueueTime | Long | 1250700979248 | Waktu saat pesan dikirim ke antrian. Stempel waktu UNIX dalam milidetik sejak 1 Januari 1970, 00:00:00 UTC. |
| FirstDequeueTime | Long | 1250700979348 | Waktu saat pesan pertama kali di-dequeue. Stempel waktu UNIX dalam milidetik sejak 1 Januari 1970, 00:00:00 UTC. Jika DequeueCount bernilai 0, nilai ini sama dengan EnqueueTime. |
| DequeueCount | Integer | 5 | Jumlah total kali pesan telah di-dequeue. |
| Priority | Integer | 8 | Prioritas pesan. |
Berbeda dengan ReceiveMessage, respons PeekMessage tidak menyertakan elemen ReceiptHandle.Contoh
Contoh permintaan
GET /queues/$queueName/messages?peekonly=true 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
Connection: close
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>D6D5F7C9C12D14A4-1-14D953EFC72-20000****</MessageId>
<MessageBodyMD5>F9360F391579E71CA77BC5D50242****</MessageBodyMD5>
<MessageBody>This is a test message.</MessageBody>
<EnqueueTime>1250700979248</EnqueueTime>
<FirstDequeueTime>1250700979348</FirstDequeueTime>
<DequeueCount>5</DequeueCount>
<Priority>8</Priority>
</Message>Kode kesalahan
Tabel berikut mencantumkan kode kesalahan spesifik untuk operasi ini. Untuk kode kesalahan umum, lihat Tanggapan kesalahan.
| Kode kesalahan | Kode status HTTP | Pesan kesalahan | Deskripsi |
|---|---|---|---|
| QueueNotExist | 404 | The queue name you provided is not exist. | Antrian yang ditentukan tidak ada. Periksa nama antrian dan wilayahnya, atau buat antrian terlebih dahulu. |
| MessageNotExist | 404 | Message not exist. | Tidak ada pesan yang tersedia untuk di-peek. Antrian kosong, atau semua pesan berada dalam status Inactive (telah dikonsumsi tetapi belum dihapus). |