我正在使用Java 8 servlet作为Cloud Pub / Sub推送端点。
在我的推送端点上,我有一个长时间运行的阻塞操作,有时会运行一分钟以上。
操作完成后,我返回一个200
响应,并确认了消息。
如果我返回500
服务器错误,则会重试该消息,这是预期的。
请注意,我创建的订阅的最大截止期限确认时间为600秒。
我注意到的是,如果长时间运行的操作运行了30秒钟以上,则也会重试该消息。似乎用于推式传递的HTTP连接不能存活30秒以上。
这是故意的吗?它可以以某种方式配置吗?预先感谢。
答案 0 :(得分:1)
对于推送订阅,Cloud Pub / Sub不会发送否定确认(有时称为小结)。如果您的Webhook在确认期限内未返回成功代码,则Cloud Pub / Sub将重试传递,直到消息在订阅的消息保留期之后到期。 create the push subscription可以为推送订阅配置默认的确认期限(选择推送订阅并设置确认期限)。
请注意,与请求订阅不同,不能为单个消息延长截止日期。截止日期实际上是端点必须响应推送请求的时间。