Message操作

  • SendMessage - 送消息到队列
    • 描述
    • Request
    • Response
    • Special Error
  • BatchSendMessage - 批量送消息到队列
    • 描述
    • Request
    • Response
    • Special Error:
  • ReceiveMessage - 消费队列消息
    • 描述
    • Request
    • Response
    • Special Error
  • BatchReceiveMessage - 批量消费队列消息
    • 描述
    • Request
    • Response
    • Special Error
  • DeleteMessage - 删除已消费消息
    • 描述
    • Request
    • Response
    • Special Error
  • BatchDeleteMessage - 批量删除已消费消息
    • 描述
    • Request
    • Response
    • Special Error
  • PeekMessage - 查看消息
    • 描述
    • Request
    • Response
    • Special Error
  • BatchPeekMessage - 批量查看消息
    • 描述
    • Request
    • Response
    • Special Error
  • ChangeMessageVisibility - 修改Inactive消息
    • 描述
    • Request
    • Response
    • Special Error

SendMessage

描述

本接口用于发送消息到指定的消息队列,普通消息发送到消息队列随即可被消费者消费。但是如果生产者发送一个消息不想马上被消费者消费(典型的使用场景为定期任务),生产者在发送消息时设置DelaySeconds参数就可以达到此目标。发送带DelaySeconds参数值大于0的消息初始状态为Delayed,此时消息不能被消费者消费,只有等DelaySeconds时间后消息变成Active状态后才可消费。

Tip:

发送消息时指定DelaySeconds参数的优先级高于延时消息队列的DelaySeconds属性,即两个DelaySeconds属性设置的值不同时以发送消息时指定的值为准。

Request

Request的构造主要由以下几个部分组成:

  • 请求行

POST /queues/$queueName/messages HTTP/1.1

  • 特有Request Header

无,请参考公共请求头

  • Request Body

Request Body为XML格式,其中包含创建Message的属性。

参数名称 说明 参数值
MessageBody 必选,消息正文 UTF-8字符集
DelaySeconds 可选,DelaySeconds指定的秒数延后可被消费,单位为秒 0-604800秒(7天)范围内某个整数值,默认值为0
Priority 可选,指定消息的优先级权值。优先级越高的消息,越容易更早被消费 取值范围1~16(其中1为最高优先级),默认优先级为8

Response

返回消息由返回状态行,HTTP头和消息体三部分组成。

  • HTTP Status Code

HTTP/1.1 201 Created

  • 特有Response Header

无,请参考公共返回头

  • Response Body

返回的结果为XML格式,返回Message的MessageId和MessageBodyMD5子元素。

参数名称 说明
MessageId 消息编号,在一个Queue唯一、
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

请求示例:

    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+FIEXAMPLE

    <?xml version="1.0” encoding=”UTF-8” ?>
    <Message xmlns=”http://mns.aliyuncs.com/doc/v1/”>
    <MessageBody>Base64 Encoded Result</MessageBody>
    <DelaySeconds>60</DelaySeconds>
    <Priority>1</Priority>
    </Message>

返回头示例:

    HTTP/1.1 201Created
    Connnection:close
    Content-Length:120
    Content-Type:text/xml;charset=utf-8
    x-mns-request-id:512B2A634403E52B1956133E
    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-200000001
    </MessageId>
    <MessageBodyMD5>
        C5DD56A39F5F7BB8B3337C6D11B6D8C7
    </MessageBodyMD5>
    </Message>

BatchSendMessage

描述

本接口用于批量发送消息到指定的消息队列,一次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字符集
DelaySeconds 可选 0 0-604800秒(7天) DelaySeconds指定的秒数延后可被消费,单位为秒
Priority 可选 8 1~16(其中1为最高优先级) 指定消息的优先级权值。优先级越高的消息,越容易更早被消费

Response

返回消息由返回状态行,HTTP头和消息体三部分组成。

  • HTTP Status Code

HTTP/1.1 201 Created

  • 特有Response Header

无,请参考公共返回头

  • Response Body

返回的结果为XML格式,返回多条Message的MessageId和MessageBodyMD5子元素。

参数名称 说明
MessageId 消息编号,在一个Queue唯一、
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

请求示例:

    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+FIEXAMPLE

    <?xml version="1.0” encoding=”UTF-8” ?>
    <Messages xmlns=”http://mns.aliyuncs.com/doc/v1/”>
    <Message>
        <MessageBody>Message1 Base64 Encoded Result</MessageBody>
        <DelaySeconds>60</DelaySeconds>
        <Priority>1</Priority>
    </Message>
    <Message>
        <MessageBody>Message2 Base64 Encoded Result</MessageBody>
        <DelaySeconds>60</DelaySeconds>
        <Priority>1</Priority>
    </Message>
    </Messages>

返回头示例:

正常发送所有消息

  HTTP/1.1 201Created
  Connnection:close
  Content-Length:120
  Content-Type:text/xml;charset=utf-8
  x-mns-request-id:512B2A634403E52B1956133E
  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-200000001</MessageId>
      <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6D8C7</MessageBodyMD5>
  </Message>
  <Message>
      <MessageId>5F290C926D472878-2-14D9529A8FA-200000002</MessageId>
      <MessageBodyMD5>377AC5283D8765C9CEE4E0EA353DFC17</MessageBodyMD5>
  </Message>
  </Messages>

只发送了部分消息

  HTTP/1.1 500
  Connnection:close
  Content-Length:120
  Content-Type:text/xml;charset=utf-8
  x-mns-request-id:512B2A634403E52B1956133E
  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-200000001</MessageId>
          <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6D8C7</MessageBodyMD5>
      </Message>
      <Message>
          <MessageId>5F290C926D472878-2-14D9529A8FA-200000002</MessageId>
          <MessageBodyMD5>377AC5283D8765C9CEE4E0EA353DFC17</MessageBodyMD5>
      </Message>
      <Message>
          <ErrorCode>InternalError</ErrorCode>
          <ErrorMessage>Internal error.</ErrorMessage>
      </Message>
  </Messages>

ReceiveMessage

描述

本接口用于消费者消费消息队列的消息,ReceiveMessage操作会将取得的消息状态变成Inactive,Inactive的时间长度由Queue属性VisibilityTimeout指定(详见CreateQueue接口)。 消费者在VisibilityTimeout时间内消费成功后需要调用DeleteMessage接口删除该消息,否则该消息将会被重新置为Active,此消息又可被消费者重新消费。

Request

Request的构造主要由以下几个部分组成:

  • 请求行

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

  • 特有URI参数
参数名称 说明 选项
waitseconds 本次ReceiveMessage请求最长的Polling等待时间①,单位为秒 可选

说明:

① 如果ReceiveMessage请求附带waitseconds参数,则在Queue无消息时,此次ReceiveMessage请求进入到Polling等待时长为waitseconds;如果未设置waitseconds,则默认使用所属Queue的PollingWaitSeconds属性(参见CreateQueue接口)。

  • 特有Request Header

无,请参考公共请求头

  • Request Body

Response

返回消息由返回状态行,HTTP头和消息体三部分组成。

  • HTTP Status Code

HTTP/1.1 200 OK

  • 特有Response Header

无,请参考公共返回头

  • Response Body

返回的结果为XML格式,返回Message消息正文及消息属性。

参数名称 说明
MessageId 消息编号,在一个Queue中唯一
ReceiptHandle 本次获取消息产生的临时句柄,用于删除和修改处于Inactive消息,NextVisibleTime之前有效。
MessageBody 消息正文
MessageBodyMD5 消息正文的MD5值
EnqueueTime 消息发送到队列的时间,从1970年1月1日0点整开始的毫秒数
NextVisibleTime 下次可被再次消费的时间,从1970年1月1日0点整开始的毫秒数
FirstDequeueTime 第一次被消费的时间,从1970年1月1日0点整开始的毫秒数
DequeueCount 总共被消费的次数
Priority 消息的优先级权值

Special Error

错误代码 错误消息 状态码
QueueNotExist The queue name you provided is not exist. 404
MessageNotExist Message not exist. 404

请求示例:

    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+FIEXAMPLE

返回示例:

    HTTP/1.1 200 OK
    Connection:close
    Content-Type=text/xml;charset=utf-8
    Content-Length:500
    x-mns-request-id:512B2A634403E52B1956133E
    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-200000001</MessageId>
    <ReceiptHandle>1-ODU4OTkzNDU5My0xNDMyNzI3ODI3LTItOA==</ReceiptHandle>
    <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6D8C7</MessageBodyMD5>
    <MessageBody>This is a test message</MessageBody>
    <EnqueueTime>1250700979248</EnqueueTime>
    <NextVisibleTime>1250700799348</NextVisibleTime>
    <FirstDequeueTime>1250700779318</FirstDequeueTime >
    <DequeueCount>1</DequeueCount >
    <Priority>8</Priority>
    </Message>

BatchReceiveMessage

描述

本接口用于消费者批量消费队列的消息,一次BatchReceiveMessage操作最多可以获取16条消息。该操作会将取得的消息状态变成Inactive,Inactive的时间长度由Queue属性VisibilityTimeout指定(详见CreateQueue接口)。 消费者在VisibilityTimeout时间内消费成功后需要调用DeleteMessage接口删除取得的消息,否则取得的消息将会被重新置为Active,又可被消费者重新消费。

Request

Request的构造主要由以下几个部分组成:

  • 请求行

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

  • 特有URI参数
参数名称 说明 必填
numOfMessages 本次BatchReceiveMessage最多获取的消息条数 必填
waitseconds 本次ReceiveMessage请求最长的Polling等待时间①,单位为秒 可选

说明:

① 如果BatchReceiveMessage请求附带waitseconds参数,则在Queue无消息时,此次BatchReceiveMessage请求进入到Polling等待时长为waitseconds;如果未设置waitseconds,则默认使用所属Queue的PollingWaitSeconds属性(参见CreateQueue接口)。

  • 特有Request Header

无,请参考公共请求头

  • Request Body

Response

返回消息由返回状态行,HTTP头和消息体三部分组成。

  • HTTP Status Code

HTTP/1.1 200 OK

  • 特有Response Header

无,请参考公共返回头

  • Response Body

返回的结果为XML格式,返回多条Message消息正文及消息属性。

参数名称 说明
MessageId 消息编号,在一个Queue中唯一
ReceiptHandle 本次获取消息产生的临时句柄,用于删除和修改处于Inactive消息,NextVisibleTime之前有效。
MessageBody 消息正文
MessageBodyMD5 消息正文的MD5值
EnqueueTime 消息发送到队列的时间,从1970年1月1日0点整开始的毫秒数
NextVisibleTime 下次可被再次消费的时间,从1970年1月1日0点整开始的毫秒数
FirstDequeueTime 第一次被消费的时间,从1970年1月1日0点整开始的毫秒数
DequeueCount 总共被消费的次数
Priority 消息的优先级权值

Special Error

错误代码 错误消息 状态码
QueueNotExist The queue name you provided is not exist. 404
MessageNotExist Message not exist. 404

请求示例:

    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+FIEXAMPLE

返回示例:

    HTTP/1.1 200 OK
    Connection:close
    Content-Type=text/xml;charset=utf-8
    Content-Length:500
    x-mns-request-id:512B2A634403E52B1956133E
    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-200000001</MessageId>
        <ReceiptHandle>1-ODU4OTkzNDU5My0xNDMyNzI3ODI3LTItOA==</ReceiptHandle>
        <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6D8C7</MessageBodyMD5>
        <MessageBody>This is a test message</MessageBody>
        <EnqueueTime>1250700979248</EnqueueTime>
        <NextVisibleTime>1250700799348</NextVisibleTime>
        <FirstDequeueTime>1250700779318</FirstDequeueTime >
        <DequeueCount>1</DequeueCount>
        <Priority>8</Priority>
    </Message>
    <Message>
        <ReceiptHandle>1-ODU4OTkzNDU5My0xNDMyNzI3MjQwLTEtOA==</ReceiptHandle>
        <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6D8C7</MessageBodyMD5>
        <MessageBody>This is a test message</MessageBody>
        <EnqueueTime>1250700979252</EnqueueTime>
        <NextVisibleTime>1250700799350</NextVisibleTime>
        <FirstDequeueTime>1250700779330</FirstDequeueTime >
        <DequeueCount>1</DequeueCount>
        <Priority>8</Priority>
    </Message>
    </Messages>

DeleteMessage

描述

本接口用于删除已经被消费过的消息,消费者需将上次消费后得到的ReceiptHandle 作为参数来定位要删除的消息。本操作只有在NextVisibleTime时刻之前执行才能成功;如果过了NextVisibleTime时刻,消息重新变回Active状态,ReceiptHandle就会失效,删除失败,需重新消费获取新的ReceiptHandle。

Request

Request的构造主要由以下几个部分组成:

  • 请求行

DELETE /queues/$queueName/messages?ReceiptHandle= HTTP/1.1

  • 特有URI参数
参数名称 说明 选项
ReceiptHandle 上次消费后返回的消息ReceiptHandle,详见本文ReceiveMessage接口 Required
  • 特有Request Header

无,请参考共同Request头

  • Request Body

Response

返回消息由返回状态行,HTTP头和消息体三部分组成。

  • HTTP Status Code

HTTP/1.1 204 NoContent

  • 特有Response Header

无,请参考公共返回头

  • Response Body

Special Error

错误代码 错误消息 状态码
QueueNotExist The queue name you provided is not exist. 404
InvalidArgument The value of Element should between Low and High seconds/bytes. 400
ReceiptHandleError The receipt handle you provide is not valid. 400

请求示例:

    DELETE  /queues/$queueName/messages?ReceiptHandle=MbZj6wDWli+QEauMZc8ZRv37sIW2iJKq3M9Mx/KSbkJ0 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+FIEXAMPLE
返回示例:

    HTTP/1.1 204 NoContent
    x-mns-request-id:512B2A634403E52B1956133E
    x-mns-version: 2015-06-06

BatchDeleteMessage

描述

本接口用于批量删除消息队列多条消息,最多可以删除16条消息,每条消息需要传入相应的ReceiptHandle。建议此接口与BatchReceiveMessage搭配使用,效率会更高。批量操作的结果可能同时包含成功和失败的子请求。只有全部子请求都成功时,HTTP状态码才是204。当部分失败发生时,用户需检查响应中每个消息的错误信息。

Request

Request的构造主要由以下几个部分组成:

  • 请求行

DELETE /queues/$queueName/messages HTTP/1.1

  • 特有URI参数

  • 特有Request Header

无,请参考共同Request头

  • Request Body

Request Body为XML格式,其中包含多条消息的Receipt Handle。

Response

返回消息由返回状态行,HTTP头和消息体三部分组成。

  • HTTP Status Code

HTTP/1.1 204 NoContent

  • 特有Response Header

无,请参考公共返回头

  • Response Body

Special Error

错误代码 错误消息 状态码
QueueNotExist The queue name you provided is not exist. 404
InvalidArgument The value of Element should between Low and High seconds/bytes. 400
ReceiptHandleError The receipt handle you provide is not valid. 400

请求示例:

    DELETE  /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+FIEXAMPLE

    <?xml version="1.0” encoding=”UTF-8” ?>
    <ReceiptHandles xmlns=”http://mns.aliyuncs.com/doc/v1/”>
        <ReceiptHandle>1-ODU4OTkzNDU5My0xNDM1MTk3NjAwLTItNg==</ReceiptHandle>
        <ReceiptHandle>1-ODU4OTkzNDU5NC0xNDM1MTk3NjAwLTItNg==</ReceiptHandle>
        <ReceiptHandle>1-ODU4OTkzNDU5NS0xNDM1MTk3NjAwLTItNg==</ReceiptHandle>
    </ReceiptHandles>

返回示例:

正常删除所有消息

  HTTP/1.1 204 NoContent
  x-mns-request-id:512B2A634403E52B1956133E
  x-mns-version: 2015-06-06
部分消息删除失败

  HTTP/1.1 404
  Connection:close
  Content-Type=text/xml;charset=utf-8
  Content-Length:500
  x-mns-request-id:512B2A634403E52B1956133E
  x-mns-version: 2015-06-06

  <?xml version="1.0” encoding=”UTF-8” ?>
  <Errors xmlns=”http://mns.aliyuncs.com/doc/v1/”>
  <Error>
      <ErrorCode>MessageNotExist</ErrorCode>
      <ErrorMessage>Message not exist.</ErrorMessage>
      <ReceiptHandle>1-ODU4OTkzNDU5My0xNDM1MTk3NjAwLTItNg==</ReceiptHandle>
  </Error>
  <Error>
      <ErrorCode>MessageNotExist</ErrorCode>
      <ErrorMessage>Message not exist.</ErrorMessage>
      <ReceiptHandle>1-ODU4OTkzNDU5NC0xNDM1MTk3NjAwLTItNg==</ReceiptHandle>
  </Error>
  </Errors>

PeekMessage

描述

本接口用于消费者查看消息,PeekMessage与ReceiveMessage不同,PeekMessage并不会改变消息的状态,即被PeekMessage获取消息后消息仍然处于Active状态,仍然可被查看或消费;而后者操作成功后消息进入Inactive,在VisibilityTimeout的时间内不可被查看和消费。

Request

Request的构造主要由以下几个部分组成:

  • 请求行

GET /queues/$queueName/messages?peekonly=true HTTP/1.1

  • URI参数

peekonely=true表示这次请求只是去查看队列顶部的消息并不会引起消息的状态改变

  • 特有Request Header

无,请参考共同Request头

  • Request Body

Response

返回消息由返回状态行,HTTP头和消息体三部分组成。

  • HTTP Status Code

HTTP/1.1 200 OK

  • 特有Response Header

无,请参考公共返回头

  • Response Body

返回的结果为XML格式,返回Message消息正文及消息属性。

参数名称 说明
MessageId 消息编号,在一个Queue唯一
MessageBody 消息正文
MessageBodyMD5 消息正文的MD5值
EnqueueTime 消息发送到队列的时间,从1970年1月1日0点整开始的毫秒数
FirstDequeueTime 第一次被消费的时间,从1970年1月1日0点整开始的毫秒数,如果DequeueCount为0,则与消息的EnqueueTime相同
DequeueCount 总共被消费的次数
Priority 消息的优先级权值

Special Error

错误代码 错误消息 状态码
QueueNotExist The queue name you provided is not exist. 404
MessageNotExist Message not exist. 404

请求示例:

    GET  /queues/$queueName/messages?peekonly=true 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+FIEXAMPLE

返回示例:

    HTTP/1.1 200 OK
    Connection:close
    Content-Type=text/xml;charset=utf-8
    Content-Length:500
    x-mns-request-id:512B2A634403E52B1956133E
    x-mns-version: 2015-06-06

    <?xml version="1.0" encoding="UTF-8"?>
    <Message xmlns=”http://mns.aliyuncs.com/doc/v1/”>
        <MessageId>D6D5F7C9C12D14A4-1-14D953EFC72-200000004</MessageId>
        <MessageBodyMD5>F9360F391579E71CA77BC5D50242FCF4</MessageBodyMD5>
        <MessageBody>This is a test message</MessageBody>
        <EnqueueTime>1250700979248</EnqueueTime>
        <FirstDequeueTime>1250700979348</FirstDequeueTime >
        <DequeueCount>5</DequeueCount>
        <Priority>8<Priority>
    </Message>

BatchPeekMessage

描述

本接口用于消费者批量查看消息,一次最多查看16条消息。BatchPeekMessage与BatchReceiveMessage不同,BatchPeekMessage并不会改变消息的状态,即被BatchPeekMessage获取消息后消息仍然处于Active状态,仍然可被查看或消费;而后者操作成功后消息进入Inactive,在VisibilityTimeout的时间内不可被查看和消费。

Request

Request的构造主要由以下几个部分组成:

  • 请求行

GET /queues/$queueName/messages?peekonly=true&numOfMessages=16 HTTP/1.1

  • 特有URI参数
参数名称 说明 选项
peekonly=true 表示这次请求只是去查看队列顶部的消息并不会引起消息的状态改变 Required
numOfMessages 本次BatchPeekMessage最多查看消息条数 Required
  • 特有Request Header

无,请参考共同Request头

  • Request Body

Response

返回消息由返回状态行,HTTP头和消息体三部分组成。

  • HTTP Status Code

HTTP/1.1 200 OK

  • 特有Response Header

无,请参考公共返回头

  • Response Body

返回的结果为XML格式,返回多条Message消息正文及消息属性。

参数名称 说明
MessageId 消息编号,在一个Queue唯一
MessageBody 消息正文
MessageBodyMD5 消息正文的MD5值
EnqueueTime 消息发送到队列的时间,从1970年1月1日0点整开始的毫秒数
FirstDequeueTime 第一次被消费的时间,从1970年1月1日0点整开始的毫秒数,如果DequeueCount为0,则与消息的EnqueueTime相同
DequeueCount 总共被消费的次数
Priority 消息的优先级权值

Special Error

错误代码 错误消息 状态码
QueueNotExist The queue name you provided is not exist. 404
MessageNotExist Message not exist. 404

请求示例:

    GET  /queues/$queueName/messages?peekonly=true&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+FIEXAMPLE

返回示例:

    HTTP/1.1 200 OK
    Connection:close
    Content-Type=text/xml;charset=utf-8
    Content-Length:500
    x-mns-request-id:512B2A634403E52B1956133E
    x-mns-version: 2015-06-06

    <?xml version="1.0" encoding="UTF-8"?>
    <Messages xmlns=”http://mns.aliyuncs.com/doc/v1/”>
    <Message>
        <MessageId>D6D5F7C9C12D14A4-1-14D953EFC72-200000004</MessageId>
        <MessageBodyMD5>F9360F391579E71CA77BC5D50242FCF4</MessageBodyMD5>
        <MessageBody>This is a test message</MessageBody>
        <EnqueueTime>1250700979248</EnqueueTime>
        <FirstDequeueTime>1250700979348</FirstDequeueTime >
        <DequeueCount>5</DequeueCount>
        <Priority>8<Priority>
    </Message>
    <Message>
        <MessageId>D6D5F7C9C12D14A4-1-14D953EFC72-200000005</MessageId>
        <MessageBodyMD5>F9360F391579E71CA77BC5D50242FCF4</MessageBodyMD5>
        <MessageBody>This is a test message</MessageBody>
        <EnqueueTime>1250700979250</EnqueueTime>
        <FirstDequeueTime>1250700979352</FirstDequeueTime >
        <DequeueCount>5</DequeueCount>
        <Priority>8<Priority>
    </Message>
    </Messages>

ChangeMessageVisibility

描述

本接口用于修改被消费过并且还处于的Inactive的消息到下次可被消费的时间,成功修改消息的VisibilityTimeout后,返回新的ReceiptHandle。

Request

Request的构造主要由以下几个部分组成:

  • 请求行

PUT /queues/$queueName/messages?receiptHandle=&visibilityTimeout= HTTP/1.1

  • URI参数
参数名称 说明 选项
ReceiptHandle 上次消费后返回的消息ReceiptHandle,详见ReceiveMessage接口 Required
VisibilityTimeout 从现在到下次可被用来消费的时间间隔,单位为秒 Required
  • 特有Request Header

无,请参考共同Request头

  • Request Body

Response

返回消息由返回状态行,HTTP头和消息体三部分组成。

  • HTTP Status Code

HTTP/1.1 200 OK

  • 特有Response Header

无,请参考公共返回头

  • Response Body
参数名称 说明
ReceiptHandle 本次修改消息VisibilityTimeout时间返回的临时句柄,用于删除和修改处于Inactive消息,在NextVisibleTime时刻之前有效。
NextVisibleTime 下次可被再次消费的时间,从1970年1月1日0点整开始的毫秒数。

Special Error

错误代码 错误消息 状态码
QueueNotExist The queue name you provided is not exist. 404
InvalidArgument The value of Element should between Low and High seconds/bytes. 400
MessageNotExist Message not exist. 404

请求示例:

    PUT /queues/$queueName/messages
    ?receiptHandle=MbZj6wDWli+QEauMZc8ZRv37sIW2iJKq3M9Mx/KSbkJ0&visibilityTimeout=50 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+FIEXAMPLE
返回示例:

    HTTP/1.1 200OK
    x-mns-request-id:512B2A634403E52B1956133E
    x-mns-version: 2015-06-06

    <?xml version="1.0" encoding="UTF-8" ?>
    <Message xmlns="http://mns.aliyuncs.com/doc/v1/">
        <ReceiptHandle>
             TbZj6wDWli+9CEauMZc8ZRv37sIW2iJKq3M9Mx/TS1
        </ReceiptHandle >
        <NextVisibleTime>1250700979298000</NextVisibleTime>
    </Message>

results matching ""

    No results matching ""