BatchPeekMessage
調(diào)用BatchPeekMessage接口批量查看消息。
授權(quán)信息
默認僅限阿里云賬號使用本接口,RAM用戶只有在被授予了相關(guān)API操作權(quán)限后方可使用。本接口的授權(quán)信息如下表所示。更多信息,請參見授權(quán)策略和示例。
Name | Value |
API | BatchPeekMessage |
RAM授權(quán)操作 | mns:BatchPeekMessage |
資源 | acs:mns:$region:$accountid:/queues/$queueName/messages |
使用說明
該接口用于消費者批量查看消息,一次最多查看16條消息。
BatchPeekMessage與BatchReceiveMessage不同,BatchPeekMessage并不會改變消息的狀態(tài)。消息被BatchPeekMessage獲取后,仍然處于Active狀態(tài),可被查看或消費;而消息被BatchReceiveMessage獲取后,進入Inactive狀態(tài),在VisibilityTimeout
的時間內(nèi)不可被查看和消費。
請求消息
請求消息由請求行、特有URL參數(shù)、HTTP頭和消息體四部分組成:
請求行
GET /queues/$queueName/messages?peekonly=true&numOfMessages=16 HTTP/1.1
特有URI參數(shù)
參數(shù)名稱
類型
是否必選
示例值
描述
peekonly
Boolean
是
true
表示這次請求只是去查看隊列頂部的消息并不會引起消息的狀態(tài)改變。取值固定為true。
numOfMessages
Integer
是
16
本次BatchPeekMessage最多查看消息條數(shù)。
特有Request Header
無。
Request Body
無。
返回消息
返回消息由返回狀態(tài)行,HTTP頭和消息體三部分組成:
HTTP Status Code
HTTP/1.1 200 OK
特有Response Header
無。
Response Body
返回的結(jié)果為XML格式,返回多條Message消息正文及消息屬性。
參數(shù)名稱
類型
示例值
描述
MessageId
String
D6D5F7C9C12D14A4-1-14D953EFC72-20000****
消息編號,在同一個Queue中唯一。
MessageBody
String
This is a test message.
消息正文。
MessageBodyMD5
String
F9360F391579E71CA77BC5D50242****
消息正文的MD5值。
EnqueueTime
Long
1250700979248
消息發(fā)送到隊列的時間,取值為從1970年01月01日00:00:00 000開始的時間。
FirstDequeueTime
Long
1250700979348
消息第一次被消費的時間,取值為從1970年01月01日00:00:00 000開始的毫秒數(shù),如果
DequeueCount
為0,則與消息的EnqueueTime相同。DequeueCount
Integer
5
總共被消費的次數(shù)。
示例
請求示例:
GET /queues/$queueName/messages?peekonly=true&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****
返回示例:
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"?>
<Messages xmlns="http://mns.aliyuncs.com/doc/v1/">
<Message>
<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>
<Message>
<MessageId>D6D5F7C9C12D14A4-1-14D953EFC72-20000****</MessageId>
<MessageBodyMD5>F9360F391579E71CA77BC5D50242****</MessageBodyMD5>
<MessageBody>This is a test message.</MessageBody>
<EnqueueTime>1250700979250</EnqueueTime>
<FirstDequeueTime>1250700979352</FirstDequeueTime >
<DequeueCount>5</DequeueCount>
<Priority>8<Priority>
</Message>
</Messages>
錯誤碼
錯誤代碼 | 錯誤消息 | HTTP狀態(tài)碼 | 描述內(nèi)容 |
QueueNotExist | The queue name you provided is not exist. | 404 | 隊列不存在,請先創(chuàng)建隊列。 |
MessageNotExist | Message not exist. | 404 | 隊列中沒有可見消息。 |