Peeks at multiple messages in a queue without changing their state.
Description
BatchPeekMessage retrieves up to 16 messages from a queue in a single request. This operation is non-destructive -- messages remain in the Active state and are still available for other consumers to view or receive.
Unlike [BatchReceiveMessage], which moves messages to the Inactive state and hides them from other consumers for the VisibilityTimeout period, BatchPeekMessage leaves all message states unchanged.
Authorization
By default, only Alibaba Cloud accounts can call this operation. RAM users must be granted the required permissions first. For details, see Permission policies and examples.
| Item | Value |
|---|---|
| API operation | BatchPeekMessage |
| Action | mns:BatchPeekMessage |
| Resource | acs:mns:$region:$accountid:/queues/$queueName/messages |
Request syntax
GET /queues/$queueName/messages?peekonly=true&numOfMessages=<num> HTTP/1.1
Host: $AccountId.mns.<region>.aliyuncs.com
Date: <date>
x-mns-version: 2015-06-06
Authorization: MNS <AccessKeyId>:<Signature>URI parameters
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| peekonly | Boolean | Yes | true | Fixed to true. Indicates that messages are viewed without state changes. |
| numOfMessages | Integer | No | 16 | The maximum number of messages that can be viewed at a time. |
Request headers
No operation-specific headers. For common headers, see [Common parameters].
Request body
None.
Response syntax
HTTP/1.1 200 OK
Content-Type: text/xml;charset=utf-8
x-mns-request-id: <request-id>
x-mns-version: 2015-06-06
<?xml version="1.0" encoding="UTF-8"?>
<Messages xmlns="http://mns.aliyuncs.com/doc/v1/">
<Message>
<MessageId>...</MessageId>
<MessageBodyMD5>...</MessageBodyMD5>
<MessageBody>...</MessageBody>
<EnqueueTime>...</EnqueueTime>
<FirstDequeueTime>...</FirstDequeueTime>
<DequeueCount>...</DequeueCount>
<Priority>...</Priority>
</Message>
<!-- Additional <Message> elements -->
</Messages>Response parameters
The response body is in XML format. Each <Message> element contains the following fields:
| Parameter | Type | Example | Description |
|---|---|---|---|
| MessageId | String | D6D5F7C9C12D14A4-1-14D953EFC72-20000**** | Unique identifier of the message within the queue. |
| MessageBody | String | This is a test message. | Body of the message. |
| MessageBodyMD5 | String | F9360F391579E71CA77BC5D50242**** | MD5 hash of the message body. |
| EnqueueTime | Long | 1250700979248 | Time when the message entered the queue. UNIX timestamp in milliseconds since January 1, 1970, 00:00:00 UTC. |
| FirstDequeueTime | Long | 1250700979348 | Time when the message was first consumed. UNIX timestamp in milliseconds. Equals EnqueueTime if DequeueCount is 0. |
| DequeueCount | Integer | 5 | Total number of times the message has been consumed. |
| Priority | Integer | 8 | Priority of the message. |
Examples
Sample request
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****Sample response
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>B4D5E8A7F23C19B5-2-15E064AFC83-30001****</MessageId>
<MessageBodyMD5>A1B2C3D4E5F6A7B8C9D0E1F2A3B4****</MessageBodyMD5>
<MessageBody>This is a test message.</MessageBody>
<EnqueueTime>1250700979250</EnqueueTime>
<FirstDequeueTime>1250700979352</FirstDequeueTime>
<DequeueCount>5</DequeueCount>
<Priority>8</Priority>
</Message>
</Messages>Error codes
| Error code | Error message | HTTP status code | Description |
|---|---|---|---|
| QueueNotExist | The queue name you provided is not exist. | 404 | The specified queue does not exist. Verify the queue name or create the queue first. |
| MessageNotExist | Message not exist. | 404 | No visible messages exist in the queue. |
See also
BatchReceiveMessage: Receive and consume multiple messages from a queue. Messages enter the Inactive state after receipt.
BatchDeleteMessage: Delete multiple consumed messages from a queue.
Permission policies and examples: Configure access control for MNS operations.