Tous les produits
Search
Centre de documentation

Simple Message Queue (formerly MNS):BatchReceiveMessage

Dernière mise à jour :Aug 10, 2026

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

Une fois reçus, les messages passent à l'état Inactive 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 Active 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'autorisation.

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 depuis une file d'attente.

  2. Les messages renvoyés passent immédiatement à l'état Inactive 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'échéance NextVisibleTime.

  4. Si vous ne supprimez pas un message dans le délai imparti par VisibilityTimeout, il repasse à l'état Active 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 le sondage long (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'expiration du délai. 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 du sondage long (Long Polling)

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'expiration du délai d'attente. Les messages écrits dans la file d'attente durant cette période sont livrés immédiatement. Pour en savoir plus sur les deux modes de sondage, consultez la rubrique Sondage court et sondage long.

Remarque

SMQ limite les requêtes de sondage long concurrentes en fonction du nombre de requêtes, de la durée d'attente et des adresses IP client. Lorsque cette limite est dépassée, SMQ renvoie immédiatement l'erreur 404 MessageNotExist au lieu de maintenir la requête en attente. Pour éviter des frais inutiles, réduisez le nombre de requêtes de sondage long concurrentes 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> inclus dans <Messages> contient 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 Inactive. Valide jusqu'à NextVisibleTime.
MessageBody String This is test message 1. Contenu du message.
MessageBodyMD5 String C5DD56A39F5F7BB8B3337C6D11B6\\\\ Hachage MD5 du corps du message.
EnqueueTime Long 1250700979248 Horodatage d'envoi du message dans la file d'attente. Horodatage UNIX en millisecondes.
NextVisibleTime Long 1250700799348 Moment où le message redevient visible. Horodatage UNIX en millisecondes.
FirstDequeueTime Long 1250700779318 Moment 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. Cette erreur survient également lorsque la limite de requêtes de sondage long concurrentes est dépassée.