Ballerina HTTP RetryConfig工作机制及statusCodes字段疑问
Ballerina
http:RetryConfig 的 statusCodes 字段解惑 关键问题解答
- 不需要必须指定
statusCodes才会判定请求失败 - 不配置这个字段时,重试机制依然会基于默认规则判定失败情况
具体说明
默认的失败判定范围
当你没设置statusCodes(也就是用默认的空数组[])时,Ballerina HTTP模块会自动把以下情况当成请求失败,触发重试:- 网络相关的异常:比如连接超时、连接被重置、DNS解析失败、连不上服务器这类IO错误
- 服务器返回的5xx系列状态码(比如500、502、503这些服务器端错误)
statusCodes的实际作用
这个字段是用来额外添加你想要触发重试的状态码的。比如你想让404(资源不存在)、429(请求过于频繁)这类客户端状态码也触发重试,就可以把它们加到这个数组里:http:RetryConfig retryConfig = { statusCodes: [404, 429], maxAttempts: 3 };这种情况下,除了默认的失败情况,404和429也会触发重试逻辑。
如果要完全自定义失败规则
要是你不想用默认的规则,只想让指定的状态码触发重试,可以配合retryCondition回调函数来实现更精准的控制,完全自定义哪些情况算失败。
内容的提问来源于stack exchange,提问作者Ayesh Weerasinghe
相关产品推荐
相关产品推荐

