Consulte plusieurs messages dans une file d'attente sans modifier leur état.
Description
L'opération BatchPeekMessage récupère jusqu'à 16 messages d'une file d'attente en une seule requête. Cette opération est non destructive : les messages conservent l'état Active et restent accessibles pour consultation ou réception par d'autres consommateurs.
Contrairement à [BatchReceiveMessage], qui fait passer les messages à l'état Inactive et les masque aux autres consommateurs pendant la durée définie par le paramètre VisibilityTimeout, BatchPeekMessage laisse les états des messages inchangés.
Autorisation
Par défaut, seuls les comptes Alibaba Cloud peuvent appeler cette opération. Les utilisateurs RAM doivent au préalable recevoir les autorisations nécessaires. Pour plus de détails, consultez la rubrique Politiques d'autorisation et exemples.
| Élément | Valeur |
|---|---|
| Opération API | BatchPeekMessage |
| Action | mns:BatchPeekMessage |
| Resource | acs:mns:$region:$accountid:/queues/$queueName/messages |
Syntaxe de la requête
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>
Paramètres URI
| Paramètre | Type | Obligatoire | Exemple | Description |
|---|---|---|---|---|
| peekonly | Boolean | Oui | true | Défini sur true. Indique que les messages sont consultés sans modification d'état. |
| numOfMessages | Integer | Non | 16 | Nombre maximal de messages consultables simultanément. |
En-têtes de requête
Aucun en-tête spécifique à cette opération. Pour les en-têtes communs, consultez la section [Paramètres communs].
Corps de la requête
Aucun.
Syntaxe de la réponse
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>
Paramètres de réponse
Le corps de la réponse est au format XML. Chaque élément <Message> contient les champs suivants :
| Paramètre | Type | Exemple | Description |
|---|---|---|---|
| MessageId | String | D6D5F7C9C12D14A4-1-14D953EFC72-20000**** | Identifiant unique du message au sein de la file d'attente. |
| MessageBody | String | This is a test message. | Corps du message. |
| MessageBodyMD5 | String | F9360F391579E71CA77BC5D50242**** | Hachage MD5 du corps du message. |
| EnqueueTime | Long | 1250700979248 | Horodatage d'entrée du message dans la file d'attente. Il s'agit d'un horodatage UNIX exprimé en millisecondes depuis le 1er janvier 1970, 00:00:00 UTC. |
| FirstDequeueTime | Long | 1250700979348 | Horodatage de la première consommation du message. Il s'agit d'un horodatage UNIX en millisecondes. Sa valeur est égale à celle de EnqueueTime si DequeueCount est égal à 0. |
| DequeueCount | Integer | 5 | Nombre total de fois où le message a été consommé. |
| Priority | Integer | 8 | Priorité du message. |
Exemples
Exemple de requête
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****
Exemple de réponse
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>
Codes d'erreur
| Code d'erreur | Message d'erreur | Code d'état HTTP | Description |
|---|---|---|---|
| QueueNotExist | The queue name you provided is not exist. | 404 | La file d'attente spécifiée n'existe pas. Vérifiez le nom de la file ou créez-la au préalable. |
| MessageNotExist | Message not exist. | 404 | Aucun message visible n'est présent dans la file d'attente. |
Voir aussi
BatchReceiveMessage : Recevez et consommez plusieurs messages d'une file d'attente. Les messages passent à l'état Inactive après réception.
BatchDeleteMessage : Supprimez plusieurs messages consommés d'une file d'attente.
Politiques d'autorisation et exemples : Configurez le contrôle d'accès pour les opérations MNS.