我目前已切换到google-cloud-pubsub库的版本0.24.0-beta
,但无法找到修改邮件确认截止日期的方法。在之前的版本中有一个modifyAckDeadline()
,它允许我这样做。是否可以在新版本中使用?
想知道我为什么要这样做:我想要实现的是一种重试机制,其中无法处理的消息在10分钟内重新传递,并且仅在X次重试失败后才会执行。
答案 0 :(得分:2)
为了保留邮件的租约,因为处理需要更长的时间,新版本的订阅者库会在后台调用modifyAckDeadline。只要消息很好,即你没有在消息接收到的消息接收的AckReplyConsumer上调用ack()或nack(),库本身就会在消息上调用modifyAckDeadline。
您的目标略有不同:您希望使用modifyAckDeadline尽力避免一段时间内重新发送邮件。如果您要等待的时间总是10分钟,那么最好的办法就是在创建订阅者时在Subscriber.Builder
上致电setMaxAckExtensionPeriod()
,持续时间为10分钟。然后,当您未能处理消息时,请不要回复或拒绝该消息。客户端库将继续修改AckDeadline十分钟,之后可以重新传递消息。