Tous les produits
Search
Centre de documentation

Simple Message Queue (formerly MNS):ReceiveMessage

Dernière mise à jour :Aug 10, 2026

Reçoit un message d'une file d'attente et le définit comme Inactif pendant la durée de la période VisibilityTimeout de la file. Appelez DeleteMessage avant l'expiration de cette période pour supprimer définitivement le message. S'il n'est pas supprimé à temps, le message revient à l'état Actif et redevient disponible pour consommation.

Informations sur l'autorisation

Par défaut, seul un compte Alibaba Cloud peut appeler cette opération. Pour l'appeler en tant qu'utilisateur Resource Access Management (RAM), accordez les autorisations requises à l'utilisateur RAM. Pour plus d'informations, consultez la rubrique Stratégies d'autorisation et exemples.

Élément Valeur
Opération API ReceiveMessage
Action mns:ReceiveMessage
Ressource acs:mns:$region:$accountid:/queues/$queueName/messages

Syntaxe de la requête

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

Cette opération ne comporte aucun en-tête de requête ni corps de requête spécifique.

Paramètres URI

Paramètre Type Obligatoire Exemple Description
waitseconds Integer Non 0 Temps d'attente maximal en secondes lorsqu'aucun message n'est disponible. Si omis, la valeur PollingWaitSeconds de la file d'attente s'applique. Pour plus d'informations, consultez la rubrique CreateQueue.

Comportement du long polling

Lorsque waitseconds est défini (ou lorsque la valeur par défaut PollingWaitSeconds de la file d'attente s'applique), le serveur maintient la connexion jusqu'à l'arrivée d'un message ou l'expiration de la période d'attente. Tout message écrit dans la file d'attente durant cette période est immédiatement transmis.

Nous vous recommandons de réduire le nombre de requêtes de long polling simultanées et de spécifier une période d'attente appropriée. Pour plus d'informations, consultez la rubrique Short polling et long polling.

Remarque

Simple Message Queue (SMQ, anciennement MNS) limite les requêtes de long polling simultanées en fonction du nombre total de requêtes, des périodes d'attente et des adresses IP source. Lorsque cette limite est dépassée, SMQ renvoie immédiatement une erreur 404 MessageNotExist sans maintenir la requête, et les frais de requête standard s'appliquent. Pour augmenter cette limite, soumettez un ticket.

Réponse

Code d'état HTTP

HTTP/1.1 200 OK

Cette opération ne comporte aucun en-tête de réponse spécifique.

Corps de la réponse

Le corps de la réponse est au format XML et contient :

  • Le corps du message et son hachage MD5

  • Un ID de message unique

  • Un handle de réception pour supprimer ou modifier le message lorsqu'il est Inactif

  • Horodatages : heure de mise en file d'attente, heure de première extraction et heure de prochaine visibilité

  • Un nombre d'extractions

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 lorsqu'il est Inactif. Utilisez cette valeur lors de l'appel à DeleteMessage ou à ChangeMessageVisibility. Valide jusqu'à NextVisibleTime.
MessageBody String This is a test message 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 depuis le 1er janvier 1970, 00:00:00 UTC.
NextVisibleTime Long 1250700799348 Heure à laquelle le message redevient visible s'il n'est pas supprimé. Horodatage UNIX en millisecondes depuis le 1er janvier 1970, 00:00:00 UTC.
FirstDequeueTime Long 1250700779318 Heure de première consommation du message. Horodatage UNIX en millisecondes depuis le 1er janvier 1970, 00:00:00 UTC.
DequeueCount Integer 1 Nombre de fois où le message a été consommé.

Exemples

Exemple de requête

GET /queues/$queueName/messages 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"?>
<Message xmlns="http://mns.aliyuncs.com/doc/v1/">
    <MessageId>5F290C926D472878-2-14D9529A8FA-20000****</MessageId>
    <ReceiptHandle>1-ODU4OTkzNDU5My0xNDMyNzI3ODI3LTItOA==</ReceiptHandle>
    <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6****</MessageBodyMD5>
    <MessageBody>This is a test message</MessageBody>
    <EnqueueTime>1250700979248</EnqueueTime>
    <NextVisibleTime>1250700799348</NextVisibleTime>
    <FirstDequeueTime>1250700779318</FirstDequeueTime>
    <DequeueCount>1</DequeueCount>
    <Priority>8</Priority>
</Message>

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 une file d'attente avant d'appeler cette opération.
MessageNotExist Message not exist. 404 Aucun message visible n'existe dans la file d'attente.

Étapes suivantes

  • Recevez plusieurs messages en un seul appel : BatchReceiveMessage

  • Supprimez un message consommé : DeleteMessage

  • Configurez les attributs de la file d'attente tels que VisibilityTimeout et PollingWaitSeconds : CreateQueue