全部产品
Search
文档中心

阿里云SDK:重试机制

更新时间:Nov 18, 2024

本节主要介绍V2.0 .NET SDK的重试机制配置方式。

说明

在V2.0 SDK中,OpenAPI请求的处理逻辑内置了网络异常重试逻辑,即当遇到网络异常问题时,系统会自动尝试重新发起请求,以确保服务的稳定性和可靠性。若请求因业务逻辑错误而报错,例如参数错误、资源不存在等情况,SDK将不会执行重试操作,这是因为业务层面的错误通常需要应用程序根据具体的错误信息做出相应的处理或调整,而非简单地重复尝试。

重试机制配置方式

说明

超时机制配置优先级:RuntimeOption配置 -> 默认,优先级依次降低。

  • 使用默认配置。默认情况下不会进行重试,如果打开重试配置且未配置重试次数,则默认最多重试3次。

  • 通过运行时参数(RuntimeOptions)配置重试机制。

    using AlibabaCloud.TeaUtil.Models;
    using Tea;
    
    namespace demo
    {
        public class Sample
        {
            static void Main(string[] args)
            {
                var ecsConfig = new AlibabaCloud.OpenApiClient.Models.Config
                {
                    // 从环境变量中获取AccessKey ID值。
                    AccessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
                    // 从环境变量中获取AccessKey Secret值。
                    AccessKeySecret = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
                    Endpoint = "ecs.cn-beijing.aliyuncs.com"
    
                };
    
                var escClient = new AlibabaCloud.SDK.Ecs20140526.Client(ecsConfig);
                var describeInstancesRequest = new AlibabaCloud.SDK.Ecs20140526.Models.DescribeRegionsRequest();
                // 运行时参数设置,仅对使用了该运行时参数实例的请求有效
                var runtimeOptions = new RuntimeOptions();
                // 开启自动重试机制
                runtimeOptions.Autoretry = true;
                // 设置自动重试次数
                runtimeOptions.MaxAttempts = 3;
    
                var response = escClient.DescribeRegionsWithOptions(describeInstancesRequest, runtimeOptions);
                Console.WriteLine(response.Body.ToMap());
            }
        }
    }