全部產品
Search
文件中心

Alibaba Cloud SDK:重試機制

更新時間:Nov 19, 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());
            }
        }
    }