我浏览了 Ballerina 文档,并在 http:RetryConfig
上找到了以下
文档。
它有一个
statusCode
字段,我需要进一步澄清。
statusCodes int[](default []) - HTTP response status codes which are considered as failures
是否必须指定状态代码才能将其视为失败?如果我们在此配置中不提供状态代码会发生什么?
首先,了解客户端可能遇到的错误类型以及如何管理重试非常重要。错误主要有两种类型:
如果未在
http:RetryConfig
(默认行为)中配置 statusCodes 字段,则客户端将仅在出现网络级别错误时重试。
如果您希望客户端也重试特定的HTTP状态代码(指示应用程序级别错误),则需要在
statusCodes
字段中显式指定这些状态代码。例如,一个常见的用例是重试 503 - Service Unavailable status
。
这是一个示例配置:
import ballerina/http;
http:Client clientEP = check new ("http://localhost:9090",
retryConfig = {
interval: 3,
count: 3,
backOffFactor: 2.0,
maxWaitInterval: 20,
statusCodes: [503] // Retry on HTTP 503 Service Unavailable
}
);