全部产品
Search
文档中心

阿里云SDK:重试机制

更新时间:Jul 02, 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();