本節主要介紹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);
}
}