开发者社区> 问答> 正文

消息服务的Queue如何操作?



描述


本接口用于创建一个新的消息队列。
消息队列名称是一个不超过256个字符的字符串,必须以字母为首字符,剩余部分中可以包含字母、数字和横划线(-)组成。

Request


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

  • 请求行

    PUT /$queueName HTTP/1.1

  • 特有Request Header

    无,请参考公共请求头

  • Request Body

    Request Body为XML格式,XML中包含创建Queue的属性,这些属性都为可选属性。
参数名称说明参数值
DelaySeconds发送到该Queue的所有消息默认将以DelaySeconds参数指定的秒数延后可被消费,单位为秒。0-604800秒(7天)范围内某个整数值,默认值为0
MaximumMessageSize发送到该Queue的消息体的最大长度,单位为byte。1024(1K)-65536(64K)范围内的某个整数值,默认值为65536(64K)。
MessageRetentionPeriod消息在该Queue中最长的存活时间,从发送到该队列开始经过此参数指定的时间后,不论消息是否被取出过都将被删除,单位为秒。60 (1分钟)-1296000 (15 天)范围内某个整数值,默认值345600 (4 天)
VisibilityTimeout消息从该Queue中取出后从Active状态变成Inactive状态后的持续时间,单位为秒。1-43200(12小时)范围内的某个值整数值,默认为30(秒)
PollingWaitSeconds当Queue消息量为空时,针对该Queue的ReceiveMessage请求最长的等待时间,单位为秒。0-30秒范围内的某个整数值,默认为0(秒)

[backcolor=transparent]说明:

只要Queue设置了PollingWaitSeconds,针对该Queue的所有ReceiveMessage请求在Queue无消息时,都将默认进入到Polling等待状态,在PollingWaitSeconds期间一直保持无消息,则会返回MessageNotExist;如果在此期间有新的消息进入到Queue中,则会唤醒相应的ReceiveMessage请求进行返回。


Response


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

  • HTTP Status Code

    HTTP/1.1 201 Created在同一个所有者名下的消息队列不能重名,当出现创建重名消息队列时,如果创建消息队列的属性与已经存在的消息队列的属性相同,返回204(No Content);否则返回409(Conflict)。

  • 特有Response Header
参数名称说明
Location返回创建的QueueURL,格式如下:http://$AccountId.mqs-<Region>.aliyuncs.com/$queueName
  • Response Body



Special Error

错误代码错误消息状态码
QueueAlreadyExistThe queue you want to create is already exist.409
InvalidArgumentThe value of Element should between Low and High seconds/bytes.400

[backcolor=transparent]请求示例:
[backcolor=transparent]


SetQueueAttributes



描述


本接口用于修改消息队列的属性。

Request


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

  • 请求行

    PUT /$queueName?metaoverride=true HTTP/1.1

  • URI参数

    metaoverride=true将会修改消息队列的属性

  • 特有Request Header

    无,请参考公共请求头

  • Request Body

    Request Body为XML格式,XML中包含创建Queue的属性,这些属性都为可选属性。
参数名称说明参数值
DelaySeconds发送到该Queue的所有消息默认将以DelaySeconds参数指定的秒数延后可被消费,单位为秒。0-604800秒(7天)范围内某个整数值,默认值为0
MaximumMessageSize发送到该Queue的消息体的最大长度,单位为byte。1024(1K)-65536(64K)范围内的某个整数值,默认值为65536(64K)。
MessageRetentionPeriod消息在该Queue中最长的存活时间,从发送到该队列开始经过此参数指定的时间后,不论消息是否被取出过都将被删除,单位为秒。60 (1分钟)-1296000 (15 天)范围内某个整数值,默认值345600 (4 天)
VisibilityTimeout消息从该Queue中取出后从Active状态变成Inactive状态后的持续时间,单位为秒。1-43200(12小时)范围内的某个值整数值,默认为30(秒)
PollingWaitSeconds当Queue消息量为空时,针对该Queue的ReceiveMessage请求最长的等待时间,单位为秒。0-30秒范围内的某个整数值,默认为0(秒)


Response


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

  • HTTP Status Code

    HTTP/1.1 204 No Content

  • 特有Response Header

    无,请参考公共返回头

  • Response Body



Special Error

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

[backcolor=transparent]
[backcolor=transparent]请求示例:
[backcolor=transparent]


GetQueueAttributes



描述


本接口用于获取某个已创建的消息队列的属性,返回属性除了创建消息队列时设置的可设置属性外,还可以取到消息队列创建时间、消息队列属性最后修改时间以及消息队列中的各类消息统计数(近似值)。

Request


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

  • 请求行

    GET /$queueName HTTP/1.1

  • 特有Request Header

    无,请参考公共请求头

  • Request Body



Response


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

  • HTTP Status Code

    HTTP/1.1 200OK

  • 特有Response Header

    无,请参考公共返回头

  • Response Body

    返回的结果为XML格式,格式为: <Queue>Attribute Element List</Queue>

属性元素列表包括:
参数名称说明
QueueNameQueue的名称
CreateTimeQueue的创建时间,从1970-1-1 0点整到现在的秒值
LastModifyTime修改Queue属性信息最近时间,从1970-1-1 0点整到现在的秒值
DelaySeconds发送消息到该Queue的所有消息默认将以DelaySeconds参数指定的秒数延后可被消费,单位为秒
MaximumMessageSize发送到该Queue的消息体的最大长度,单位为byte
MessageRetentionPeriod消息在该Queue中最长的存活时间,从发送到该队列开始经过此参数指定的时间后,不论消息是否被取出过都将被删除,单位为秒
PollingWaitSeconds当Queue消息量为空时,针对该Queue的ReceiveMessage请求最长的等待时间,单位为秒
Activemessages在该Queue中处于Active状态的消息总数,为近似值
InactiveMessages在该Queue中处于Inactive状态的消息总数,为近似值
DelayMessages在该Queue中处于Delayed状态的消息总数,为近似值


Special Error

错误代码错误消息状态码
QueueNotExistThe queue name you provided is not exist.404

[backcolor=transparent]
[backcolor=transparent]请求示例:
[backcolor=transparent]


DeleteQueue



描述


本接口用于删除一个已创建的消息队列。
[backcolor=transparent]Note:
  1. [backcolor=transparent]使用者必须谨慎使用此接口,一旦删除消息队列成功,消息队列内所有消息也一并删除,不可恢复。


Request


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

  • 请求行

    DELETE /$queueName HTTP/1.1

  • 特有Request Header

    无,请参考公共请求头

  • Request Body



Response


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

  • HTTP Status Code

    HTTP/1.1 204 No Content

  • 特有Response Header

    无,请参考公共返回头

  • Response Body



Special Error


本操作无特有的错误,主要是权限验证类和参数设置类错误,详见错误响应码。
[backcolor=transparent]
[backcolor=transparent]请求示例:
[backcolor=transparent]


ListQueue



描述


此接口用于列出AccountId下的消息队列列表,可分页获取数据。返回结果中只包含QueueURL属性,如需进一步获取消息队列的属性可以通过GetQueueAttributes接口(详见本文档GetQueueAttributes接口)获取。如果只是要获取特定的消息队列列表,在调用此接口时指定x-mqs-prefix参数,返回对消息队列名称的前缀匹配结果。

[backcolor=transparent]Tip:

如果本次请求结果返回的消息队列总数超过本次请求的x-mqs-ret-number参数值,返回的XML结果中包含的NextMarker表示下一页开始位置,在下一次请求时将该值赋予x-mqs-marker参数以返回下一页的结果。


Request


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

  • 请求行

    GET / HTTP/1.1

  • 特有Request Header
参数名称说明选项
x-mqs-marker请求下一个分页的开始位置,一般从上次分页结果返回的NextMarker获取。Optional
x-mqs-ret-number单次请求结果的最大返回个数,可以取1-1000范围内的整数值,默认值为1000。Optional
x-mqs-prefix按照该前缀开头的queueName进行查找。Optional

其它Request Header请参考公共请求头
  • Request Body



Response


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

  • HTTP Status Code

    HTTP/1.1 200 OK

  • 特有Response Header

    无,请参考公共返回头

  • Response Body

    返回XML形式的结果,顶层Queues元素下包含多个Queue元素, Queue元素中包含QueueURL元素,QueueURL表示创建的Quque的可访问URL地址。如果返回结果超过x-mqs-ret-number的参数值,包含NextMarker元素表示下个分页的起始位置。


Special Error


本操作无特有的错误,主要是权限验证类和参数设置类错误,详见MQS错误响应码。
[backcolor=transparent]
[backcolor=transparent]请求示例:
[backcolor=transparent]

展开
收起
轩墨 2017-10-24 15:51:42 2317 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
消息服务在Serverless中的应用 立即下载
使命必达 —— 钉钉企业级 消息服务的机遇与挑战 立即下载
使命必达—钉钉企业级消息服务的机遇与挑战 立即下载