Tous les produits
Search
Centre de documentation

Simple Message Queue (formerly MNS):BatchReceiveMessage

Dernière mise à jour :Sep 21, 2026

Reçoit jusqu'à 16 messages d'une file d'attente en un seul appel.

Une fois reçus, les messages passent à l'état Inactif pendant la durée définie par le paramètre VisibilityTimeout de la file d'attente. Supprimez les messages dans ce délai après leur traitement. À défaut, ils repassent à l'état Actif et peuvent être redistribués.

Autorisation

Par défaut, seuls les comptes Alibaba Cloud peuvent appeler cette opération. Accordez les autorisations requises aux utilisateurs RAM avant qu'ils n'appellent cette opération. Pour plus de détails, consultez la rubrique Politiques et exemples d'autorisations.

Propriété Valeur
API BatchReceiveMessage
Action mns:BatchReceiveMessage
Resource acs:mns:$region:$accountid:/queues/$queueName/messages

Fonctionnement

  1. Envoyez une requête GET avec le paramètre numOfMessages pour recevoir des messages d'une file d'attente.

  2. Les messages renvoyés passent immédiatement à l'état Inactif et sont masqués pour les autres consommateurs.

  3. Traitez chaque message, puis appelez l'opération DeleteMessage en utilisant le ReceiptHandle du message avant l'heure indiquée par NextVisibleTime.

  4. Si vous ne supprimez pas un message durant la période VisibilityTimeout, il repasse à l'état Actif et peut être consommé à nouveau.

Le paramètre VisibilityTimeout est configuré au niveau de la file d'attente via l'opération CreateQueue.

Requête

Ligne de requête

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

Paramètres URI

Paramètre Type Obligatoire Exemple Description
numOfMessages Integer Oui 10 Nombre maximal de messages à recevoir.
waitseconds Integer Non 0 Temps d'attente pour l'interrogation longue (long polling), en secondes. Lorsqu'aucun message n'est disponible, la requête reste en attente jusqu'à l'arrivée d'un message ou l'écoulement du délai d'attente. La valeur par défaut correspond au paramètre PollingWaitSeconds de la file d'attente si ce paramètre est omis. Consultez la rubrique CreateQueue.

Comportement de l'interrogation longue

Lorsque le paramètre waitseconds est défini (ou lorsque la valeur par défaut PollingWaitSeconds de la file d'attente s'applique), la requête reste ouverte jusqu'à l'arrivée d'un message ou l'écoulement du délai d'attente. Les messages écrits dans la file d'attente durant cette période sont livrés immédiatement. Pour plus d'informations sur les deux modes d'interrogation, consultez la rubrique Interrogation courte et interrogation longue.

Remarque

SMQ limite le nombre de requêtes d'interrogation longue simultanées en fonction du nombre de requêtes, de la durée d'attente et des adresses IP des clients. Lorsque cette limite est dépassée, SMQ renvoie immédiatement le code d'erreur 404 MessageNotExist au lieu de maintenir la requête en attente. Pour éviter des frais inutiles, réduisez le nombre de requêtes d'interrogation longue simultanées et utilisez une durée d'attente appropriée. Pour augmenter cette limite, soumettez un ticket.

En-têtes de requête

Aucun en-tête spécifique à l'opération.

Corps de la requête

Aucun.

Réponse

Code d'état HTTP

HTTP/1.1 200 OK

En-têtes de réponse

Aucun en-tête spécifique à l'opération.

Corps de la réponse

Le corps de la réponse est au format XML. Chaque élément <Message> contenu dans <Messages> comprend les champs suivants :

Paramètre Type Exemple Description
MessageId String 5F290C926D472878-2-14D9529A8FA-20000\\\\ Identifiant unique du message au sein de la file d'attente.
ReceiptHandle String 1-ODU4OTkzNDU5My0xNDMyNzI3ODI3LTItOA== Handle permettant de supprimer ou de modifier le message tant qu'il est à l'état Inactif. Valide jusqu'à l'heure indiquée par NextVisibleTime.
MessageBody String This is test message 1. Contenu du message.
MessageBodyMD5 String C5DD56A39F5F7BB8B3337C6D11B6\\\\ Hachage MD5 du corps du message.
EnqueueTime Long 1250700979248 Heure d'envoi du message dans la file d'attente. Horodatage UNIX en millisecondes.
NextVisibleTime Long 1250700799348 Heure à laquelle le message redevient visible. Horodatage UNIX en millisecondes.
FirstDequeueTime Long 1250700779318 Heure de la première consommation du message. Horodatage UNIX en millisecondes.
DequeueCount Integer 1 Nombre total de fois où le message a été consommé.

Exemples

Exemple de requête

GET /queues/$queueName/messages?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
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>5F290C926D472878-2-14D9529A8FA-20000****</MessageId>
    <ReceiptHandle>1-ODU4OTkzNDU5My0xNDMyNzI3ODI3LTItOA==</ReceiptHandle>
    <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6****</MessageBodyMD5>
    <MessageBody>This is test message 1.</MessageBody>
    <EnqueueTime>1250700979248</EnqueueTime>
    <NextVisibleTime>1250700799348</NextVisibleTime>
    <FirstDequeueTime>1250700779318</FirstDequeueTime>
    <DequeueCount>1</DequeueCount>
    <Priority>8</Priority>
  </Message>
  <Message>
    <ReceiptHandle>1-ODU4OTkzNDU5My0xNDMyNzI3MjQwLTEtOA==</ReceiptHandle>
    <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6****</MessageBodyMD5>
    <MessageBody>This is test message 2.</MessageBody>
    <EnqueueTime>1250700979252</EnqueueTime>
    <NextVisibleTime>1250700799350</NextVisibleTime>
    <FirstDequeueTime>1250700779330</FirstDequeueTime>
    <DequeueCount>1</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. Créez d'abord la file d'attente.
MessageNotExist Message not exist. 404 Aucun message visible dans la file d'attente. Cela se produit également lorsque la limite de requêtes d'interrogation longue simultanées est dépassée.