将消息传送给拉取型订阅者后,订阅者必须在确认时限内处理并确认(ACK)消息。否则,订阅方必须通过调用来修改确认期限以延长期限。
Pub/Sub 高级客户端库 提供租赁管理功能,可自动延长期限 尚未确认的消息。默认情况下,客户端 库可以通过以下方式将截止时间延长到一个小时: modifyAckDeadline 用于 Python、Go、Java 和 .Net 的高级客户端库使用 确认延迟的第 99 个百分位,用于确定每个请求的长度 。
借助租期管理功能,您可以更精细地控制 与配置订阅级属性相比,消息的截止时间。 如果您仅使用订阅级确认期限,则需要在较低值和较高值之间权衡利弊。低值 会提高出现重复项的可能性,而较高的值会延迟重新提交 (共 封发送失败的邮件)。确定正确的值可能很困难,尤其是当不同消息的预期处理时间差异很大时。
如需详细了解订阅的属性 包括确认时限,请参阅 订阅属性。
租期管理配置
您可以在高级客户端库中配置以下属性,以控制租约管理。
最长确认延长期限。在 您也可以使用
modify acknowledgment deadline
请求。借助此属性,您可以确定希望订阅方客户端处理消息的时长。每个确认扩展的时长上限。延长每个
modify acknowledgment deadline
请求的确认期限的最长时间。借助此属性,您可以定义 Pub/Sub 重新传送消息所需的时间。在以下情况下,系统会重新提交 处理消息的第一个订阅者会崩溃或健康状况不佳 无法再发送modify acknowledgment deadline
请求。每个确认扩展的最短时长。最低金额 延长每个
modify acknowledgment deadline
请求的确认时限的时间。借助此属性,您可以指定在重新传送消息之前必须经过的最短时间。
除非 你启用 正好一次送达。
手动管理确认时限
为避免在使用单调拉取或低级客户端库时消息过期和重新提交,请使用 modify acknowledgment deadline
请求延长确认期限。唯一的例外是 Go 和 C++ 高级客户端库,它们在使用单个拉取时提供租约管理。如需了解带有租约管理的单个拉取操作,请参阅以下示例:
C#
在尝试此示例之前,请按照《快速入门:使用客户端库》中的 C# 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub C# API 参考文档。
Java
在尝试此示例之前,请按照《快速入门:使用客户端库》中的 Java 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub Java API 参考文档。
Node.js
在尝试此示例之前,请按照《快速入门:使用客户端库》中的 Node.js 设置说明进行操作。如需了解详情,请参阅 Pub/Sub Node.js API 参考文档。
Python
在尝试此示例之前,请按照《快速入门:使用客户端库》中的 Python 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub Python API 参考文档。
Ruby
在尝试此示例之前,请按照《快速入门:使用客户端库》中的 Ruby 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub Ruby API 参考文档。
后续步骤
了解您可以为订阅配置的其他提交选项: