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