本文介绍函数在同步调用和异步调用执行失败时,如何进行重试完成函数调用。

重试机制

函数未成功执行的重试机制因调用方式而异:
  • 同步调用失败

    您需要自行重试。

  • 异步调用失败
    函数计算会自动重试的情况如下表所示。
    执行失败原因 状态码 服务器端行为 是否计费 解决方案
    函数计算的错误类型为HandledInvocationErrorUnhandledInvocationError。关于函数计算错误类型的更多信息,请参见错误处理 200 默认重试3次,或根据异步设置次数重试。 按照调用次数计费。关于计费的详细信息,请参见计费概述 请自行排查您的代码。
    函数并发执行超上限。 429 以二进制指数退避方式重试执行5小时。当您的函数执行失败后将在0.5秒后开始重试,后续重试执行的时间间隔将以二进制指数退避方式计算,即重试时间间隔为1秒、2秒、4秒、8秒等持续重试5小时。 由于阿里云账号(主账号)在单个地域内默认的按量实例上限数为300。如果您需要提高该限制,请提交工单
    系统内部错误。 500 以二进制指数退避方式重试执行5小时。当您的函数执行失败后将在0.5秒后开始重试,后续重试执行的时间间隔将以二进制指数退避方式计算,即重试时间间隔为1秒、2秒、4秒、8秒等持续重试5小时。 提交工单
    函数计算资源不足。 503 以二进制指数退避方式重试执行5小时。当您的函数执行失败后将在0.5秒后开始重试,后续重试执行的时间间隔将以二进制指数退避方式计算,即重试时间间隔为1秒、2秒、4秒、8秒等持续重试5小时。 提交工单

若您在使用过程中遇到问题,请联系我们