Tous les produits
Search
Centre de documentation

Simple Message Queue (formerly MNS):BatchSendMessage

Dernière mise à jour :Aug 10, 2026

Envoie jusqu'à 16 messages vers une file d'attente en une seule requête. La taille totale maximale des données utiles par lot est de 64 Ko.

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 d'informations, consultez la rubrique Politiques et exemples d'autorisation.

|
**Propriété**
|
**Valeur**
| | --- | --- | |
API
|
BatchSendMessage
| |
Action
|
mns:BatchSendMessage
| |
Ressource
|
acs:mns:$region:$accountid:/queues/$queueName/messages
|















Notes d'utilisation

  • Chaque lot prend en charge jusqu'à 16 messages, pour une taille combinée maximale de 64 Ko.

  • Encodez tous les corps de message en Base64 avant l'envoi afin d'éviter les erreurs liées aux caractères spéciaux dans la charge utile XML.

  • Si DelaySeconds est omis ou défini sur 0, les messages sont immédiatement disponibles pour la consommation. Pour différer la consommation, définissez DelaySeconds sur une valeur supérieure à 0. Les messages différés passent à l'état Delayed (Différé), puis à l'état Active (Actif) après la période spécifiée.

  • Lorsque le message et la file d'attente définissent tous deux DelaySeconds, la valeur au niveau du message est prioritaire.

  • Calcul des QPS : Le nombre effectif de QPS pour une file d'attente correspond au taux de requêtes multiplié par le nombre de messages par lot. Par exemple, 100 requêtes par seconde avec 10 messages par lot génèrent 1 000 QPS sur cette file d'attente.

Requête

Ligne de requête

POST /queues/$queueName/messages HTTP/1.1

En-têtes

Cette opération ne définit pas d'en-têtes de requête spécifiques. Pour les en-têtes communs, consultez l'exemple de requête.

Corps de la requête

Le corps de la requête utilise le format XML. Encapsulez chaque message dans un élément <Message> à l'intérieur d'un élément racine <Messages>.

Paramètre Type Obligatoire Description
MessageBody String Oui Corps du message. Encodez cette valeur en Base64 avant l'envoi.
DelaySeconds Integer Non Délai en secondes avant que le message ne devienne consommable. Valeurs valides : de 0 à 604800. Valeur par défaut : 0.

Réponse

Succès

HTTP/1.1 201 Created

La réponse contient un élément <Message> pour chaque message du lot :

Paramètre Type Description
MessageId String ID unique du message au sein de la file d'attente.
MessageBodyMD5 String Hachage MD5 du corps du message. Comparez cette valeur avec un hachage calculé localement pour vérifier l'intégrité du message.

Échec partiel

Lorsque certains messages d'un lot échouent, la réponse renvoie le code d'état HTTP 500. Le corps de la réponse contient un mélange d'entrées réussies et d'entrées ayant échoué :

  • Les messages réussis incluent MessageId et MessageBodyMD5.

  • Les messages ayant échoué incluent plutôt ErrorCode et ErrorMessage.

Exemples

Envoyer deux messages avec des valeurs de délai différentes

Requête :

POST /queues/$queueName/messages HTTP/1.1
Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
Date: Wed, 18 Mar 2012 12:00:00 GMT
Content-Length:500
Content-Type:text/xml;charset=utf-8
x-mns-version: 2015-06-06
Authorization: MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXA****
<?xml version="1.0" encoding="UTF-8"?>
<Messages xmlns="http://mns.aliyuncs.com/doc/v1/">
    <Message>
        <MessageBody>This is test message 1.</MessageBody>
        <DelaySeconds>60</DelaySeconds>
        <Priority>1</Priority>
    </Message>
    <Message>
        <MessageBody>This is test message 2.</MessageBody>
        <DelaySeconds>0</DelaySeconds>
        <Priority>1</Priority>
    </Message>
</Messages>

Réponse : tous les messages envoyés

HTTP/1.1 201 Created
Content-Length:120
Content-Type:text/xml;charset=utf-8
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>
        <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6****</MessageBodyMD5>
    </Message>
    <Message>
        <MessageId>5F290C926D472878-2-14D9529A8FA-20000****</MessageId>
        <MessageBodyMD5>377AC5283D8765C9CEE4E0EA353D****</MessageBodyMD5>
    </Message>
</Messages>

Réponse : échec partiel

Lorsqu'un ou plusieurs messages échouent, la réponse renvoie le code HTTP 500. Chaque élément <Message> contient soit un résultat réussi, soit une erreur :

HTTP/1.1 500
Content-Length:120
Content-Type:text/xml;charset=utf-8
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>
        <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6****</MessageBodyMD5>
    </Message>
    <Message>
        <MessageId>5F290C926D472878-2-14D9529A8FA-20000****</MessageId>
        <MessageBodyMD5>377AC5283D8765C9CEE4E0EA353D****</MessageBodyMD5>
    </Message>
    <Message>
        <ErrorCode>InternalError</ErrorCode>
        <ErrorMessage>Internal error.</ErrorMessage>
    </Message>
</Messages>

Codes d'erreur

Code d'erreur Message d'erreur Statut HTTP Description
QueueNotExist The queue name you provided is not exist. 404 La file d'attente spécifiée n'existe pas. Créez la file d'attente avant d'envoyer des messages.
MalformedXML The XML you provided was not well-formed. 400 Le corps de la requête contient un XML non valide. Vérifiez la structure et l'encodage XML.
InvalidArgument The value of Element should between Low and High seconds/bytes. 400 La valeur d'un paramètre est hors plage. Spécifiez une valeur valide comme indiqué.