首页 > 解决方案 > Google Cloud Function - 检测是否发生重试

问题描述

我的设置

我有一个从订阅Google Cloud Function接收请求的背景。PubSub函数写在python3.8.

我已启用该功能的重试。我的功能可能会因内存超出错误而失败。

我希望完成的事情

我想知道函数收到的请求是否是retry. 我想优雅地处理函数失败的情况,所以第二次到达时我会处理它。

使用最大传递尝试和死信主题并不是我想要的,因为最小数量max_delivery_attempt是 5。在这种情况下,我的函数可能会在到达死信主题之前失败 5 次。我希望它最多失败一次,然后处理这种情况。

问题

我怎么知道正在执行重试?

标签: google-cloud-functionsgoogle-cloud-pubsub

解决方案


正如您在文档的此页面中看到的,交付尝试字段是:

  • 仅在您拉取订阅时可用,而不是在您将函数直接插入 PubSub 时可用(它是推送订阅并包装在特殊的交付包中)
  • 仅当您在订阅上设置死信主题时才会填充,否则值为 0。

因此,如果您需要跟踪此值,我建议您在外部数据库(例如 firestore)中进行跟踪。


推荐阅读