当函数异步调用执行失败后,函数计算自动进行错误重试。本文介绍重试机制以及如何在函数计算控制台配置重试策略。
重试机制
对于常见错误,系统默认的重试策略如下表所示。
状态码 | 执行失败原因 | 服务器端行为 |
200 | 错误类型为 | 默认重试3次,或根据异步调用配置中设置的maxAsyncRetryAttempts重试。 |
429 | 函数并发执行超过上限被流控。 | 以二进制指数退避方式重试执行5小时。当您的函数执行失败后将在0.5秒后开始重试,后续重试执行的时间间隔将以二进制指数退避方式计算,即重试时间间隔为1秒、2秒、4秒、8秒等持续重试5小时。 |
500 | 系统错误。 | |
503 | 函数计算资源不足。 |
配置重试策略
函数计算支持自定义重试次数和消息最大存活时长。
- 登录函数计算控制台,在左侧导航栏,单击服务及函数。
- 在顶部菜单栏,选择地域,然后在服务列表页面,单击目标服务。
- 在函数管理页面,单击目标函数名称。
在目标函数详情页面,单击异步配置页签,然后在异步策略区域,单击编辑。
在编辑异步策略面板,设置以下配置项,然后单击确定。
配置项
解释说明
任务模式(可选)
是否开启异步任务模式,关于异步任务模式,请参见异步任务功能概览。
配置重试策略时,无需配置该参数。
最大重试次数
用于配置异步调用流程中的消息最大重试次数,取值范围[0,8]。
函数计算在默认情况下,对异步触发失败的消息进行3次重试,您可以根据业务需求减少或增加对异步调用的重试。
消息最大存活时长
用于配置异步调用流程中的消息最大存活时长,取值范围[1,604800],默认为86400,单位为秒。
该时长从触发异步调用时开始计算,到该消息出队准备进行处理为止。如果超过配置的消息最大存活时长,该条消息将被丢弃。未被消费的消息将计入云监控异步调用触发事件(次)指标。关于指标详情,请参见监控指标。