saf*_*yia 1 java google-cloud-pubsub
我目前切换到0.24.0-betagoogle-cloud-pubsub 库的版本,找不到修改消息确认截止日期的方法。在之前的版本中有一个modifyAckDeadline(),它允许我这样做。新版本中可以吗?
为了了解我为什么要这样做:我想要实现的是一种重试机制,其中处理失败的消息将在 10 分钟内重新传递,并且仅在 X 次不成功的重试后才进行确认。
为了保持消息的租约,因为处理消息需要更长的时间,新版本的订阅者库会在后台为您调用modifyAckDeadline。只要消息未完成,即您尚未在 MessageReceiver 随消息一起接收到的 AckReplyConsumer 上调用 ack() 或 nack(),库本身就会对该消息调用modifyAckDeadline。
您的目标略有不同:您希望使用modifyAckDeadline 尽力阻止消息重新传递一段时间。如果您想要等待的时间始终是 10 分钟,那么最好的办法是在创建订阅者时拨打setMaxAckExtensionPeriod()10 分钟的电话。Subscriber.Builder然后,当你处理消息失败时,就不要 ack 或 nack 消息。客户端库将持续修改AckDeadline十分钟,之后可以重新发送消息。
| 归档时间: |
|
| 查看次数: |
3147 次 |
| 最近记录: |