基本信息
Name | Value |
[backcolor=transparent]API | ChangeMessageVisibility |
[backcolor=transparent]RAM授权操作 | mns:ChangeMessageVisibility |
[backcolor=transparent]资源 | acs:mns:$region:$accountid:/queues/$queueName/messages |
PUT /queues/$queueName/messages?receiptHandle=<receiptHandle>&visibilityTimeout=<visibilitytimeout> HTTP/1.1
参数名称 | 说明 | 选项 |
ReceiptHandle | 上次消费后返回的消息 ReceiptHandle ,详见 ReceiveMessage 接口 | Required |
VisibilityTimeout | 从现在到下次可被用来消费的时间间隔,单位为秒 | Required |
无,请参考 [backcolor=transparent]调用方式/公共参数
无
HTTP/1.1 200 OK
无,请参考 [backcolor=transparent]调用方式/公共参数
参数名称 | 说明 |
ReceiptHandle | 本次修改消息 VisibilityTimeout 时间返回的临时句柄,用于删除和修改处于 Inactive 消息,在 NextVisibleTime 时刻之前有效。 |
NextVisibleTime | 下次可被再次消费的时间,从1970年1月1日 00:00:00 000 开始的毫秒数。 |
错误代码 | 错误消息 | 状态码 |
QueueNotExist | The queue name you provided is not exist. | 404 |
InvalidArgument | The value of Element should between Low and High seconds/bytes. | 400 |
MessageNotExist | Message not exist. | 404 |
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在阿里云的 Messaging and Notification Service (MNS) 中,ChangeMessageVisibility
API 是一个关键操作,用于控制消息的可见性以及它们被消费者处理的时间。当您调用这个接口时,可以针对已经被获取(即处于 Inactive 状态)但还未被正确处理完成的消息,调整其下一次可被消费的时间点。这通过修改消息的 VisibilityTimeout
来实现。
/queues/$queueName/messages?receiptHandle=
其中: - $queueName
是您要操作的消息队列的名称。 - receiptHandle
是消息的唯一标识符,每次消息被接收时,MNS 会返回一个新的 ReceiptHandle
,需要使用这个 ReceiptHandle
才能对消息进行后续操作,如确认删除或修改可见性时间。
除了请求行外,您还需要在请求体中包含调整可见性的具体参数,通常以 JSON 格式发送,内容可能包括:
{
"VisibilityTimeout": $newVisibilityTimeout
}
$newVisibilityTimeout
是您希望设置的新可见性超时时间(单位:秒),表示消息再次变为可消费状态前需要等待的时间。为了能够调用 ChangeMessageVisibility
接口,您的应用程序或服务账号需要拥有相应的权限,这通常通过阿里云的 Resource Access Management (RAM) 进行配置。所需的 RAM 授权操作为 mns:ChangeMessageVisibility
。
确保您的 RAM 策略中正确指定了 MNS 队列资源,例如:
acs:mns:$region:$accountid:/queues/$queueName/messages
$region
是阿里云的区域标识,如 cn-hangzhou
。$accountid
是您的阿里云账号ID。$queueName
同上,是队列的名称。VisibilityTimeout
后,MNS 会返回一个新的 ReceiptHandle
,如果需要继续操作该消息,必须使用新的 ReceiptHandle
。如果您在实际应用中遇到问题或者需要进一步的帮助,请参考阿里云官方文档或直接咨询阿里云技术支持。