调用ChangeMessageVisibility接口,修改被消费过并且还处于Inactive状态的消息与其下次可被消费的时间间隔。

授权信息

默认仅限阿里云账号使用本接口,RAM用户只有在被授予了相关API操作权限后方可使用。本接口的授权信息如下表所示。更多信息,请参见授权策略和示例

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

请求消息

请求消息由请求行、URL参数、HTTP头和消息体四部分组成:

  • 请求行

    PUT /queues/$queueName/messages?receiptHandle=<receiptHandle>&visibilityTimeout=<visibilitytimeout> HTTP/1.1

  • URI参数
    参数名称 类型 是否必选 示例值 描述
    ReceiptHandle String MbZj6wDWli+QEauMZc8ZRv37sIW2iJKq3M9Mx/KSbkJ0 上次消费后返回的消息的ReceiptHandle。更多信息,请参见ReceiveMessage
    VisibilityTimeout Integer 50 从现在到下次可被用来消费的时间间隔,单位为秒。
  • 特有Request Header

    无。

  • Request Body

    无。

返回消息

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

  • HTTP Status Code

    HTTP/1.1 200 OK

  • 特有Response Header

    无。

  • Response Body
    参数名称 类型 示例值 说明
    ReceiptHandle String TbZj6wDWli+9CEauMZc8ZRv37sIW2iJKq3M9Mx/TS1 本次修改消息VisibilityTimeout时返回的临时句柄,用于删除和修改状态为Inactive的消息,在NextVisibleTime时间之前有效。
    NextVisibleTime Long 1250700979298000 下次可被再次消费的时间,取值为从1970年01月01日00:00:00 000开始的毫秒数。

示例

请求示例:

PUT /queues/$queueName/messages
?receiptHandle=MbZj6wDWli+QEauMZc8ZRv37sIW2iJKq3M9Mx/KSbkJ0&visibilityTimeout=50 HTTP/1.1
Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
Date: Wed, 28 May 2012 22:32:00 GMT
x-mns-version: 2015-06-06
Authorization: MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXA****           

返回示例:

HTTP/1.1 200 OK
x-mns-request-id:512B2A634403E52B1956****
x-mns-version: 2015-06-06

<?xml version="1.0" encoding="UTF-8"?>
<ChangeVisibility xmlns="http://mns.aliyuncs.com/doc/v1/">
    <ReceiptHandle>TbZj6wDWli+9CEauMZc8ZRv37sIW2iJKq3M9Mx/TS1</ReceiptHandle >
    <NextVisibleTime>1250700979298000</NextVisibleTime>
</ChangeVisibility>            

错误码

错误码 错误信息 HTTP状态码 描述内容
InvalidArgument The value of Element should between Low and High seconds/bytes. 400 参数值非法,请根据提示调整。
ReceiptHandleError The receipt handle you provide is not valid. 400 请求参数不合法。
QueueNotExist The queue name you provided is not exist. 404 队列不存在,请先创建队列。
MessageNotExist The receipt handle you provided has expired. 404 消费消息过慢导致消息重新回到队列生成新的ReceiptHandle,之前的ReceiptHandle失效。请加快消费速度或者增加队列的不可见时间。