使用SetQueueAttributes接口来修改队列属性。

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

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天)范围内某个整数值
    MaximumMessageSize 发送到该Queue的消息体的最大长度,单位为Byte。 1024(1KB)-65536(64KB)范围内的某个整数值
    MessageRetentionPeriod 消息在该Queue中最长的存活时间,从发送到该队列开始经过此参数指定的时间后,不论消息是否被取出过都将被删除,单位为秒。 60 (1分钟)-604800 (7天)范围内某个整数值
    VisibilityTimeout 消息从该Queue中取出后从Active状态变成Inactive状态后的持续时间,单位为秒。 1-43200(12小时)范围内的某个值整数值
    PollingWaitSeconds 当Queue消息量为空时,针对该Queue的ReceiveMessage请求最长的等待时间,单位为秒。 0-30秒范围内的某个整数值
    LoggingEnabled 是否开启日志管理功能,取值说明如下:
    • True:表示启用;
    • False:表示停用。
    True/False

Response

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

  • HTTP Status Code

    HTTP/1.1 204 No Content

  • 特有Response Header

    无,请参见公共参数

  • Response Body

示例

请求示例:

    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>
        <LoggingEnabled>True</LoggingEnabled>
    </Queue>          

返回示例:

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

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