开发者社区> 问答> 正文

API如何创建队列?



基本信息

NameValue
[backcolor=transparent]APICreateQueue
[backcolor=transparent]RAM授权操作mns:CreateQueue
[backcolor=transparent]资源acs:mns:$region:$accountid:/queues/$queueName


描述


该接口用于创建一个新的队列。
队列名称是一个不超过256个字符的字符串,必须以字母或数字为首字符,剩余部分可以包含字母、数字和横划线(-)。
队列实例默认上限为10万个,如有特殊需求可工单联系我们提高队列实例上限值。

Request


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

  • 请求行

    PUT /queues/$queueName HTTP/1.1

  • 特有Request Header

    无,请参考 [backcolor=transparent]调用方式/公共参数

  • 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

[backcolor=transparent]说明:

[backcolor=transparent]只要 Queue 设置了 PollingWaitSeconds,针对该 Queue 的所有(Batch)ReceiveMessage 请求在队列无消息时,都将默认进入到Polling 等待状态(即长轮询),在 PollingWaitSeconds 期间一直保持无消息,则会返回 MessageNotExist;如果在此期间有新的消息进入到 Queue 中,则会唤醒相应的 ReceiveMessage 请求,返回消息。
[backcolor=transparent]当进入到长轮询之后,建议您降低长轮询的并发数。 目前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

错误代码错误消息状态码
QueueAlreadyExistThe queue you want to create is already exist.409
InvalidArgumentThe value of Element should between Low and High seconds/bytes.400
[tr=rgb(239, 251, 255)][td]QueueNumExceededLimit The number of the queues you created has excceeded the limit.400
[backcolor=transparent]请求示例:
[backcolor=transparent]

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

相关电子书

更多
CUDA MATH API 立即下载
API PLAYBOOK 立即下载
传统企业的“+互联网”-API服务在京东方的实践 立即下载