修改异步订户中的ack截止日期

时间:2017-09-28 21:29:15

标签: java google-cloud-pubsub

我目前已切换到google-cloud-pubsub库的版本0.24.0-beta,但无法找到修改邮件确认截止日期的方法。在之前的版本中有一个modifyAckDeadline(),它允许我这样做。是否可以在新版本中使用?

想知道我为什么要这样做:我想要实现的是一种重试机制,其中无法处理的消息在10分钟内重新传递,并且仅在X次重试失败后才会执行。

1 个答案:

答案 0 :(得分:2)

为了保留邮件的租约,因为处理需要更长的时间,新版本的订阅者库会在后台调用modifyAckDeadline。只要消息很好,即你没有在消息接收到的消息接收的AckReplyConsumer上调用ack()或nack(),库本身就会在消息上调用modifyAckDeadline。

您的目标略有不同:您希望使用modifyAckDeadline尽力避免一段时间内重新发送邮件。如果您要等待的时间总是10分钟,那么最好的办法就是在创建订阅者时在Subscriber.Builder上致电setMaxAckExtensionPeriod(),持续时间为10分钟。然后,当您未能处理消息时,请不要回复或拒绝该消息。客户端库将继续修改AckDeadline十分钟,之后可以重新传递消息。