閱讀880 返回首頁    go 阿裏雲


批量發送消息__隊列接口規範_API使用手冊_消息服務-阿裏雲

描述

該接口用於批量發送消息到指定的隊列,一次 BatchSendMessage 最多發送16條消息。普通消息發送到隊列隨即可被消費者消費,如果生產者發送一個消息不想馬上被消費者消費(典型的使用場景為定期任務),生產者在發送消息時設置 DelaySeconds 參數就可以達到此目標。發送帶 DelaySeconds 參數值大於0的消息初始狀態為Delayed,此時消息不能被消費者消費,隻有等 DelaySeconds 時間後消息變成 Active 狀態後才可消費。發送消息時指定 DelaySeconds 參數的優先級高於延時消息隊列的 DelaySeconds 屬性,即兩個 DelaySeconds 屬性設置的值不同時以發送消息時指定的值為準。

Request

Request的構造主要由以下幾個部分組成:

  • 請求行

    POST /queues/$queueName/messages HTTP/1.1

  • 特有Request Header

    無,請參考 調用方式/公共參數

  • Request Body

    Request Body為XML格式,其中包含多條創建Message的屬性。

參數名稱 說明 參數值 選項
MessageBody 消息正文 UTF-8字符集 Required
DelaySeconds DelaySeconds 指定的秒數延後可被消費,單位為秒 0-604800秒(7天)範圍內某個整數值,默認值為0 Optional
Priority 指定消息的優先級權值,優先級越高的消息,越容易更早被消費 取值範圍1~16(其中1為最高優先級),默認優先級為8 Optional

Response

返回消息由返回狀態行,HTTP頭和消息體三部分組成。

  • HTTP Status Code

    HTTP/1.1 201 Created

  • 特有Response Header

    無,請參考 調用方式/公共參數

  • Response Body

    返回的結果為XML格式,返回多條Message的MessageId和MessageBodyMD5子元素。

參數名稱 說明
MessageId 消息編號,在一個隊列唯一
MessageBodyMD5 消息正文的MD5值

Special Error:

錯誤代碼 錯誤消息 狀態碼
QueueNotExist The queue name you provided is not exist. 404
MalformedXML The XML you provided was not well-formed. 400
InvalidArgument The value of Element should between Low and High seconds/bytes. 400

請求示例:

  1. POST /queues/$queueName/messages HTTP/1.1
  2. Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
  3. Date: Wed, 18 Mar 2012 12:00:00 GMT
  4. Content-Length:500
  5. Content-Type:text/xml;charset=utf-8
  6. x-mns-version: 2015-06-06
  7. Authorization: MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE
  8. <?xml version="1.0" encoding="UTF-8"?>
  9. <Messages xmlns="https://mns.aliyuncs.com/doc/v1/">
  10. <Message>
  11. <MessageBody>Message1 Base64 Encoded Result</MessageBody>
  12. <DelaySeconds>60</DelaySeconds>
  13. <Priority>1</Priority>
  14. </Message>
  15. <Message>
  16. <MessageBody>Message2 Base64 Encoded Result</MessageBody>
  17. <DelaySeconds>60</DelaySeconds>
  18. <Priority>1</Priority>
  19. </Message>
  20. </Messages>

返回頭示例:

  • 正常發送所有消息

    1. HTTP/1.1 201 Created
    2. Content-Length:120
    3. Content-Type:text/xml;charset=utf-8
    4. x-mns-request-id:512B2A634403E52B1956133E
    5. x-mns-version: 2015-06-06
    6. <?xml version="1.0" encoding="UTF-8"?>
    7. <Messages xmlns="https://mns.aliyuncs.com/doc/v1/">
    8. <Message>
    9. <MessageId>5F290C926D472878-2-14D9529A8FA-200000001</MessageId>
    10. <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6D8C7</MessageBodyMD5>
    11. </Message>
    12. <Message>
    13. <MessageId>5F290C926D472878-2-14D9529A8FA-200000002</MessageId>
    14. <MessageBodyMD5>377AC5283D8765C9CEE4E0EA353DFC17</MessageBodyMD5>
    15. </Message>
    16. </Messages>
  • 隻發送了部分消息

    1. HTTP/1.1 500
    2. Content-Length:120
    3. Content-Type:text/xml;charset=utf-8
    4. x-mns-request-id:512B2A634403E52B1956133E
    5. x-mns-version: 2015-06-06
    6. <?xml version="1.0" encoding="UTF-8"?>
    7. <Messages xmlns="https://mns.aliyuncs.com/doc/v1/">
    8. <Message>
    9. <MessageId>5F290C926D472878-2-14D9529A8FA-200000001</MessageId>
    10. <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6D8C7</MessageBodyMD5>
    11. </Message>
    12. <Message>
    13. <MessageId>5F290C926D472878-2-14D9529A8FA-200000002</MessageId>
    14. <MessageBodyMD5>377AC5283D8765C9CEE4E0EA353DFC17</MessageBodyMD5>
    15. </Message>
    16. <Message>
    17. <ErrorCode>InternalError</ErrorCode>
    18. <ErrorMessage>Internal error.</ErrorMessage>
    19. </Message>
    20. </Messages>

最後更新:2016-11-23 17:16:09

  上一篇:go RESTfulAPI概述__隊列接口規範_API使用手冊_消息服務-阿裏雲
  下一篇:go 批量消費消息__隊列接口規範_API使用手冊_消息服務-阿裏雲