Queue操作
- CreateQueue - 创建队列
- 描述
- Request
- Response
- Special Error
- SetQueueAttributes - 修改队列属性
- 描述
- Request
- Response
- Special Error
- GetQueueAttributes - 获取队列属性
- 描述
- Request
- Response
- Special Error
- DeleteQueue - 删除队列
- 描述
- Request
- Response
- Special Error
- ListQueue - 获取队列列表
- 描述
- Request
- Response
- Special Error
CreateQueue
描述
本接口用于创建一个新的消息队列。
消息队列名称是一个不超过256个字符的字符串,必须以字母为首字符,剩余部分中可以包含字母、数字和横划线(-)组成。
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(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(秒) |
说明:
只要Queue设置了PollingWaitSeconds,针对该Queue的所有(Batch)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.mns. |
- 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 |
请求示例:
PUT /queues/$queueName HTTP/1.1
Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
Date: Wed, 08 Mar 2012 12:00:00 GMT
x-mns-version: 2015-06-06
Authorization:MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=
<?xml version=”1.0” enconding=”UTF-8”?>
<Queue xmlns=”http://mns.aliyuncs.com/doc/v1/”>
<VisibilityTimeout>60</VisibilityTimeout>
<MaximumMessageSize>65536</MaximumMessageSize>
<MessageRetentionPeriod>1209600</MessageRetentionPeriod>
</Queue>
返回示例:
HTTP/1.1 201 Created
x-mns-request-id:512B2A634403E52B1956133E
x-mns-version: 2015-06-06
Location: http://$AccountId.mns.cn-hangzhou.aliyuncs.com/queues/$queueName
SetQueueAttributes
描述
本接口用于修改消息队列的属性。
Request
Request的构造主要由以下几个部分组成:
- 请求行
PUT /queues/$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
错误代码 | 错误消息 | 状态码 |
---|---|---|
InvalidArgument | The value of Element should between Low and High seconds/bytes. | 400 |
QueueNotExist | The queue name you provided is not exist. | 404 |
请求示例:
PUT /queues/$queueName?Metaoverride=true HTTP/1.1
Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
Date: Wed, 08 Mar 2012 12:00:00 GMT
x-mns-version: 2015-06-06
Authorization: MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=
<?xml version="1.0" encoding="UTF-8" ?>
<Queue xmlns=”http://mns.aliyuncs.com/doc/v1/”>
<VisibilityTimeout >60</VisibilityTimeout>
<MaximumMessageSize>1024</MaximumMessageSize>
<MessageRetentionPeriod>120</MessageRetentionPeriod>
<DelaySeconds>30</DelaySeconds>
</Queue>
返回示例:
HTTP/1.1 204 No Content
x-mns-request-id:512B2A634403E52B1956133E
x-mns-version: 2015-06-06
GetQueueAttributes
描述
本接口用于获取某个已创建的消息队列的属性,返回属性除了创建消息队列时设置的可设置属性外,还可以取到消息队列创建时间、消息队列属性修改最后时间以及消息队列中的各类消息统计数(近似值)。
Request
Request的构造主要由以下几个部分组成。
- 请求行
GET /queues/$queueName HTTP/1.1
- 特有Request Header
无,请参考公共请求头
- Request Body
无
Response
返回消息由返回状态行,HTTP头和消息体三部分组成。
- HTTP Status Code
HTTP/1.1 200OK
- 特有Response Header
无,请参考公共返回头
- Response Body
返回的结果为XML格式,格式为:
Attribute Element List
属性元素列表包括:
参数名称 | 说明 |
---|---|
QueueName | Queue的名称 |
CreateTime | Queue的创建时间,从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
错误代码 | 错误消息 | 状态码 |
---|---|---|
QueueNotExist | The queue name you provided is not exist. | 404 |
请求示例:
GET /queues/$queueName HTTP/1.1
Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
Date: Wed, 08 Mar 2012 12:00: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:145
x-mns-request-id:512B2A634403E52B1956133E
x-mns-version: 2015-06-06
<?xml version="1.0" encoding="UTF-8"?>
<Queue xmlns=http://mns.aliyuncs.com/doc/v1/”>
<QueueName>$queueName </QueueName ><!—以实际Queue Name返回 ->
<CreateTime>1250700999</CreateTime >
<LastModifyTime>1250700999</LastModifyTime>
<VisibilityTimeout>60</VisibilityTimeout >
<MaximumMessageSize>65536</MaximumMessageSize>
<MessageRetentionPeriod>65536</MessageRetentionPeriod>
<DelaySeconds>30</DelaySecond>
<PollingWaitSeconds>0</PollingWaitSeconds>
<InactiveMessages>0</InactiveMessages>
<ActiveMessages>20</ActiveMessages>
< DelayMessages >0</ DelayMessages>
</Queue>
DeleteQueue
描述
本接口用于删除一个已创建的消息队列。
Note:
使用者必须谨慎使用此接口,一旦删除消息队列成功,消息队列内所有消息也一并删除,不可恢复。
Request
Request的构造主要由以下几个部分组成:
- 请求行
DELETE /queues/$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
本操作无特有的错误,主要是权限验证类和参数设置类错误,详见MNS错误响应码。
请求示例:
DELETE /queues/$queueName HTTP/1.1
Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
Date: Wed, 08 Mar 2012 12:00: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
ListQueue
描述
此接口用于列出AccountId下的消息队列列表,可分页获取数据。返回结果中只包含QueueURL属性,如需进一步获取消息队列的属性可以通过GetQueueAttributes接口(详见本文档GetQueueAttributes接口)获取。如果只是要获取特定的消息队列列表,在调用此接口时指定x-mns-prefix参数,返回对消息队列名称的前缀匹配结果。 Tip:
如果本次请求结果返回的消息队列总数超过本次请求的x-mns-ret-number参数值,返回的XML结果中包含的NextMarker表示下一页开始位置,在下一次请求时将该值赋予x-mns-marker参数以返回下一页的结果。
Request
Request的构造主要由以下几个部分组成:
- 请求行
GET /queues HTTP/1.1
- 特有Request Header
参数名称 | 说明 | 选项 |
---|---|---|
x-mns-marker | 请求下一个分页的开始位置,一般从上次分页结果返回的NextMarker获取。 | Optional |
x-mns-ret-number | 单次请求结果的最大返回个数,可以取1-1000范围内的整数值,默认值为1000。 | Optional |
x-mns-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-mns-ret-number的参数值,包含NextMarker元素表示下个分页的起始位置。
Special Error
本操作无特有的错误,主要是权限验证类和参数设置类错误,详见MNS错误响应码。
请求示例:
GET /queues HTTP/1.1
x-mns-marker: xxxx
x-mns-ret-number:2
Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
Date: Wed, 08 Mar 2012 12:00: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” ?>
<Queuesxmlns=”http://mns.aliyuncs.com/doc/v1/”>
<Queue>
< QueueURL>
http:// $AccountId.mns.cn-hangzhou.aliyuncs.com/queues/queueName
</ QueueURL>
</Queue>
<Queue>
< QueueURL>
http:// $AccountId.mns.cn-hangzhou.aliyuncs.com/queues/queueName1
</ QueueURL>
</Queue>
<NextMarker> Base64 Encoded Result </NextMarker>
</Queues>