Google Cloud Function - 检测是否发生重试
Google Cloud Function - Detect if retry occured
我的设置
我有一个后台 Google Cloud Function
接收来自 PubSub
订阅的请求。函数写在python3.8
.
我已启用该功能的重试。我的功能可能会因 超出内存 错误而失败。
我想完成的事情
我想知道函数收到的请求是否是retry
。我想优雅地处理函数失败的情况,所以它第二次到达我会处理它。
使用最大投递尝试和死信主题并不是我想要的,因为 max_delivery_attempt
的最小数量是 5。在那种情况下,我的函数可能会在到达死信主题之前失败 5 次。我希望它最多失败一次然后处理那个案例。
问题
我怎么知道正在执行重试?
如您在 the documentation 的页面中所见,投递尝试字段为:
- 仅当您拉取订阅时可用,当您直接在 PubSub 上插入您的函数时不可用(它是推送订阅并包装在一个特殊的交付包中)
- 仅当您在订阅中设置死信主题时才会填充,否则值为 0。
因此,如果您需要跟踪此值,我建议您在外部数据库(例如 firestore)中进行跟踪。
我的设置
我有一个后台 Google Cloud Function
接收来自 PubSub
订阅的请求。函数写在python3.8
.
我已启用该功能的重试。我的功能可能会因 超出内存 错误而失败。
我想完成的事情
我想知道函数收到的请求是否是retry
。我想优雅地处理函数失败的情况,所以它第二次到达我会处理它。
使用最大投递尝试和死信主题并不是我想要的,因为 max_delivery_attempt
的最小数量是 5。在那种情况下,我的函数可能会在到达死信主题之前失败 5 次。我希望它最多失败一次然后处理那个案例。
问题
我怎么知道正在执行重试?
如您在 the documentation 的页面中所见,投递尝试字段为:
- 仅当您拉取订阅时可用,当您直接在 PubSub 上插入您的函数时不可用(它是推送订阅并包装在一个特殊的交付包中)
- 仅当您在订阅中设置死信主题时才会填充,否则值为 0。
因此,如果您需要跟踪此值,我建议您在外部数据库(例如 firestore)中进行跟踪。