全部產品
Search
文件中心

Alibaba Cloud SDK:重試機制

更新時間:Jul 03, 2024

本文為您介紹V2.0 PHP SDK重試機制配置方式。

說明

在V2.0 SDK中,OpenAPI請求的處理邏輯內建了網路異常重試邏輯,即當遇到網路異常問題時,系統會自動嘗試重新發起請求,以確保服務的穩定性和可靠性。若請求因商務邏輯錯誤而報錯,例如參數錯誤、資源不存在等情況,SDK將不會執行重試操作,這是因為業務層面的錯誤通常需要應用程式根據具體的錯誤資訊做出相應的處理或調整,而非簡單地重複嘗試。

重試機制配置方式

說明

逾時機制配置優先順序:RuntimeOptions配置 -> 預設,優先順序依次降低。

  • 使用預設配置。預設不會進行重試,如果開啟重試配置,且未配置重試次數,則預設最多重試3次。

  • 通過運行時參數(RuntimeOptions)配置。

    <?php
    
    require_once 'vendor/autoload.php';
    use AlibabaCloud\SDK\Ecs\V20140526\Ecs;
    use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
    use Darabonba\OpenApi\Models\Config;
    use AlibabaCloud\SDK\Ecs\V20140526\Models\DescribeRegionsRequest;
    
    class ProxyDemo
    {
    
        public static function main()
        {
            $config = new Config([
                "accessKeyId" => getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
                "accessKeySecret" => getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
                "endpoint" => "ecs.cn-beijing.aliyuncs.com", // <endpoint>
            ]);
            $client = new Ecs($config);
    
            // 運行時參數設定,僅對使用了該運行時參數執行個體的請求有效
            $runtime = new RuntimeOptions([
                "autoretry" => true, // 重試配置開關
                "maxAttempts" => 3, // 重試次數
            ]);
            $describeRegionsRequest = new DescribeRegionsRequest([
                "regionId" => "cn-beijing"
            ]);
            $resp = $client->describeRegionsWithOptions($describeRegionsRequest, $runtime);
            // var_dump($resp);
        }
    }
    ProxyDemo::main();