返回介绍

1.7.3 更改 Message 不可见时间

发布于 2020-10-01 15:14:14 字数 4587 浏览 1015 评论 0 收藏 0

改变接收到的message的不可见时间
message被某一用户实例接收后,将在一段时间内变为不可见,以防止被反复接收
当不可见时间超时,且之间一直没有收到此message的删除请求,EMQ将认为这条message未被成功处理,且此次接收message的用户实例已变为不响应状态。因此EMQ会将message重新置为可见状态,以便此message被再次读取并成功处理
用户实例接收后message后,如果认为自已在设定的不可见时间内难以完成message处理,可以使用此方法延长不可见时间。新设置的不可见时间从server收到请求开始计算(而不是从message的接收时间开始计算)
除上述情景外,如果用户实例发现接收到的message自己无法处理,也可以将不可见时间设为0。此时,message将立刻变为可见,从而被再次读取
本方法设置不可见时间仅一次有效。如果不可见时间超时,message被再次读取,那么message的不可见时间将使用其原本的数值

方法参数ChangeMessageVisibilityRequest

queueName : String : required
receiptHandle : String : required

需改变不可见时间的message对应的receiptHandle
注意,此处不可使用messageID

invisibilitySeconds : int required

新设置的不可见时间,从server收到请求开始计算

方法返回void


批量更改message的不可见时间
注意:此操作不具有原子性。可能部分message更改成功,部分失败

方法参数ChangeMessageVisibilityBatchRequest

queueName : String : required
changeMessageVisibilityRequestEntryList : List< ChangeMessageVisibilityBatchRequestEntry > : required

需改变不可见时间的message列表
ChangeMessageVisibilityBatchRequestEntry字段包括

  1. receiptHandle : String : required
  2. invisibilitySeconds : int : required

方法返回ChangeMessageVisibilityBatchResponse

successful : List< String >

成功的message的receiptHandle列表

failed : List< MessageBatchErrorEntry >

失败的message的receiptHandle列表及对应异常
MessageBatchErrorEntry类型的具体内容可参见sendMessageBatch()

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文