首页 > 解决方案 > Cloud Functions 何时重试?

问题描述

为我的云功能启用重试后,我想知道它会重试的所有情况。

这部分对我来说似乎是矛盾的。因此,我假设我不理解它。
我认为以下暗示启用了“失败重试”的功能也将重试致命错误:

Cloud Functions 不理解不应重试的致命错误

但是,Promise.reject在这种情况下捕获错误并使用有什么意义呢?
我试图用它Promise.reject来取消我的云功能的重试,但是,这并没有发生。

return Promise.reject(..) // will retry
throw Error() // will retry

如果未重新部署该功能,两者都将重试一周。对我来说,这
似乎是致命的错误,并且 Promise.reject都会重试,但是,文档说:

如果您支持致命错误,您应该相应地修改您的代码

文档中这一部分的意义是什么,我现在应该做什么?

标签: node.jsgoogle-cloud-functions

解决方案


如果函数最终产生任何类型的错误,Cloud Functions 将重试该函数。这包括被拒绝的承诺、抛出的异常或超时。

如果您不希望函数重试,则捕获所有错误并返回成功的承诺。如果您知道错误在以后的重试中永远不会消失(例如,错误的输入值),那么不要安排重试它。否则,您只需为所有无效的重试付费。

重试的全部意义在于处理存在临时错误的情况,例如网络问题。因此,您应该确保您的函数仅在预期函数最终会在未来某个时间成功的情况下产生错误。

如果您发现文档令人困惑,请随意使用文档任何页面上的“发送反馈”按钮。


推荐阅读