当函数异步调用执行失败后,函数计算自动进行错误重试。本文介绍重试机制以及如何在函数计算控制台配置重试策略。

重试机制

对于常见错误,系统默认的重试策略如下表所示。

状态码 执行失败原因 服务器端行为
200 错误类型为HandledInvocationErrorUnhandledInvocationError。更多信息,请参见基础信息 默认重试3次,或根据异步调用配置中设置的maxAsyncRetryAttempts重试。
429 函数并发执行超过上限被流控。 以二进制指数退避方式重试执行5小时。当您的函数执行失败后将在0.5秒后开始重试,后续重试执行的时间间隔将以二进制指数退避方式计算,即重试时间间隔为1秒、2秒、4秒、8秒等持续重试5小时。
500 系统错误。
503 函数计算资源不足。

配置重试策略

函数计算支持自定义重试次数和消息最大存活时长。

  1. 登录函数计算控制台,在左侧导航栏,单击服务及函数
  2. 在顶部菜单栏,选择地域,然后在服务列表页面,单击目标服务。
  3. 函数管理页面,单击目标函数名称。
  4. 在目标函数详情页面,单击异步配置页签,然后在异步策略区域,单击编辑
  5. 编辑异步策略面板,设置以下配置项,然后单击确定
    配置项 解释说明
    任务模式(可选) 是否开启异步任务模式,关于异步任务模式,请参见异步任务功能概览

    配置重试策略时,无需配置该参数。

    最大重试次数 用于配置异步调用流程中的消息最大重试次数,取值范围[0,8]。

    函数计算在默认情况下,对异步触发失败的消息进行3次重试,您可以根据业务需求减少或增加对异步调用的重试。

    消息最大存活时长 用于配置异步调用流程中的消息最大存活时长,取值范围[1,2592000],单位为秒。
    该时长从触发异步调用时开始计算,到该消息出队准备进行处理为止。如果超过配置的消息最大存活时长,该条消息将被丢弃。未被消费的消息将计入云监控异步调用触发事件(次)指标。关于指标详情,请参见监控指标
    说明 消息最大存活时长默认值为1天。