重试机制

更新时间:

本节主要介绍V2.0 SDK 的重试机制。

V2.0 SDK 对 OpenAPI 请求中遇到网络问题的情况会进行重试,对于业务报错则不会重试。在请求中通过运行时参数(RuntimeOption)配置重试,优先级为 RuntimeOption > 默认;默认不会进行重试,如果打开重试配置未配置重试次数,则默认最多重试3次:

import com.aliyun.ecs20140526.models.DescribeRegionsRequest;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teautil.models.RuntimeOptions;

public class Sample {
public static void main(String[] args) throws Exception {
        Config config = new com.aliyun.teaopenapi.models.Config();
        // 从环境变量获取RAM账号的AccessKey ID
        config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
        // 从环境变量获取RAM账号的AccessKey ID
        config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        // 地域ID
        config.setRegionId("<regionId>");
        com.aliyun.ecs20140526.Client client = new com.aliyun.ecs20140526.Client(config);

        // 运行时参数重试设置,仅对使用了该运行时参数实例的请求有效
        RuntimeOptions runtimeOptions = new RuntimeOptions();
        // 开启自动重试机制
        runtimeOptions.autoretry = true;
        // 设置自动重试次数
        runtimeOptions.maxAttempts = 3;

        DescribeRegionsRequest describeRegionsRequest = new DescribeRegionsRequest();

        client.describeRegionsWithOptions(describeRegionsRequest, runtimeOptions);
    }
}