全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
消息服务

创建队列

更新时间:2017-06-07 13:26:11

基本信息

Name Value
API CreateQueue
RAM授权操作 mns:CreateQueue
资源 acs:mns:$region:$accountid:/queues/$queueName

描述

该接口用于创建一个新的队列。

队列名称是一个不超过256个字符的字符串,必须以字母或数字为首字符,剩余部分可以包含字母、数字和横划线(-)。

队列实例默认上限为10万个,如有特殊需求可工单联系我们提高队列实例上限值。

Request

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

  • 请求行

    PUT /queues/$queueName HTTP/1.1

  • 特有Request Header

    无,请参考 调用方式/公共参数

  • Request Body

    Request Body为XML格式,XML中包含创建 Queue 的属性,这些属性都为可选属性。

参数名称 说明 参数值
DelaySeconds 发送到该 Queue 的所有消息默认将以DelaySeconds参数指定的秒数延后可被消费,单位为秒。 0-604800秒(7天)范围内某个整数值,默认值为0
MaximumMessageSize 发送到该Queue的消息体的最大长度,单位为byte。 1024(1KB)-65536(64KB)范围内的某个整数值,默认值为65536(64KB)。
MessageRetentionPeriod 消息在该 Queue 中最长的存活时间,从发送到该队列开始经过此参数指定的时间后,不论消息是否被取出过都将被删除,单位为秒。 60 (1分钟)-1296000 (15 天)范围内某个整数值,默认值345600 (4 天)
VisibilityTimeout 消息从该 Queue 中取出后从Active状态变成Inactive状态后的持续时间,单位为秒。 1-43200(12小时)范围内的某个值整数值,默认为30(秒)
PollingWaitSeconds 当 Queue 中没有消息时,针对该 Queue 的 ReceiveMessage 请求最长的等待时间,单位为秒。 0-30秒范围内的某个整数值,默认为0(秒)
LoggingEnabled 是否开启日志管理功能,True表示启用,False表示停用 True/False,默认为False

说明:

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

当进入到长轮询之后,建议您降低长轮询的并发数。目前MNS服务端会根据用户的长轮询数量、长轮询等待时间、访问IP数量等多个因素动态设置长轮询防攻击并发上限值;当队列无消息时超过长轮询上限值的请求将无法进入到监听状态并直接返回404MessageNotExist(按请求量正常计费)。如果您有临时提升长轮询上限值的需求,请及时提工单联系我们,避免产生不必要的费用支出。

Response

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

  • HTTP Status Code

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

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

Special Error

错误代码 错误消息 状态码
QueueAlreadyExist The queue you want to create is already exist. 409
InvalidArgument The value of Element should between Low and High seconds/bytes. 400
QueueNumExceededLimit The number of the queues you created has excceeded the limit. 400

请求示例:

  1. PUT /queues/$queueName HTTP/1.1
  2. Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
  3. Date: Wed, 08 Mar 2012 12:00:00 GMT
  4. x-mns-version: 2015-06-06
  5. Authorization:MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=
  6. <?xml version="1.0" encoding="UTF-8"?>
  7. <Queue xmlns="http://mns.aliyuncs.com/doc/v1/">
  8. <VisibilityTimeout>60</VisibilityTimeout>
  9. <MaximumMessageSize>65536</MaximumMessageSize>
  10. <MessageRetentionPeriod>1209600</MessageRetentionPeriod>
  11. <LoggingEnabled>True</LoggingEnabled>
  12. </Queue>

返回示例:

  1. HTTP/1.1 201 Created
  2. x-mns-request-id:512B2A634403E52B1956133E
  3. x-mns-version: 2015-06-06
  4. Location: http://$AccountId.mns.cn-hangzhou.aliyuncs.com/queues/$queueName
本文导读目录