- 1.2 EMQ简介
- 1.3 快速开始
- 1.3.1 集群信息
- 1.3.2 控制台管理示例
- 1.3.3 代码示例
- 1.3.4 SDK
- 1.4 基础知识
- 1.4.1 基本概念
- 1.4.2 消息状态和接收模型
- 1.5 常见问题
- 1.5.1 Queue
- 1.5.2 Message
- 1.5.3 常见异常
- 1.5.4 其他
- 1.6 Queue API
- 1.6.1 创建/删除/清理 Queue
- 1.6.2 设置 Queue 属性/配额
- 1.6.3 获取 Queue 信息
- 1.6.4 Queue 权限操作
- 1.6.5 拷贝 Queue 元数据
- 1.7 Message API
- 1.7.1 发送 Message
- 1.7.2 接收 Message
- 1.7.3 更改 Message 不可见时间
- 1.7.4 删除(ACK) Message
- 1.7.5 重新驱动 Message
- 1.7.6 查询 Message
- 1.7.7 直接删除 Message
- 1.8 报警/统计 API
- 1.8.1 设置/获取 用户联系/配额信息
- 1.8.2 添加/移除/获取 Queue 报警策略
- 1.8.3 设置/获取 Queue 每日消息统计
- 1.9 高级队列功能
- 1.9.1 多读者/Tag
- 1.9.1.1 模型介绍
- 1.9.1.2 相关API
- 1.9.2 死信队列
- 1.9.3 Topic Queue
- 1.9.4 Priority Queue
- 1.10 计费规则
- 1.11 新旧版认证迁移
1.7.3 更改 Message 不可见时间
改变接收到的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字段包括
- receiptHandle : String : required
- invisibilitySeconds : int : required
方法返回ChangeMessageVisibilityBatchResponse
successful : List< String >
成功的message的receiptHandle列表
failed : List< MessageBatchErrorEntry >
失败的message的receiptHandle列表及对应异常
MessageBatchErrorEntry类型的具体内容可参见sendMessageBatch()
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论