什么是重试机制以及如何配置函数重试策略

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

重试机制

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

状态码

执行失败原因

服务器端行为

200

错误类型为HandledInvocationErrorUnhandledInvocationError。更多信息,请参见基础信息

默认重试3次,或根据异步调用配置中设置的maxAsyncRetryAttempts重试。

429

函数并发执行超过上限被流控。

以二进制指数退避方式重试执行5小时。当您的函数执行失败后将在0.5秒后开始重试,后续重试执行的时间间隔将以二进制指数退避方式计算,即重试时间间隔为1秒、2秒、4秒、8秒等持续重试5小时。

500

系统错误。

503

函数计算资源不足。

配置重试策略

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

  1. 登录函数计算控制台,在左侧导航栏,单击服务及函数
  2. 在顶部菜单栏,选择地域,然后在服务列表页面,单击目标服务。
  3. 函数管理页面,单击目标函数名称。
  4. 在目标函数详情页面,单击异步配置页签,然后在异步策略区域,单击编辑

  5. 编辑异步策略面板,设置以下配置项,然后单击确定

    配置项

    解释说明

    任务模式(可选)

    是否开启异步任务模式,关于异步任务模式,请参见异步任务功能概览

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

    最大重试次数

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

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

    消息最大存活时长

    用于配置异步调用流程中的消息最大存活时长,取值范围[1,604800],默认为86400,单位为秒。

    该时长从触发异步调用时开始计算,到该消息出队准备进行处理为止。如果超过配置的消息最大存活时长,该条消息将被丢弃。未被消费的消息将计入云监控异步调用触发事件(次)指标。关于指标详情,请参见监控指标