本节主要介绍升级版 SDK 的重试机制。
升级版 SDK 对 OpenAPI 请求中遇到网络问题的情况会进行重试,对于业务报错则不会重试。在请求中通过运行时参数配置重试,优先级为 RuntimeOption -> 默认;默认不会进行重试,如果打开重试配置未配置重试次数,则默认最多重试3次:
package main
import (
"encoding/json"
"fmt"
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
ecs20140526 "github.com/alibabacloud-go/ecs-20140526/v3/client"
util "github.com/alibabacloud-go/tea-utils/v2/service"
"github.com/alibabacloud-go/tea/tea"
)
func main() {
config := &openapi.Config{
// 您的AccessKey ID
AccessKeyId: tea.String("<AccessId>"),
// 您的AccessKey Secret
AccessKeySecret: tea.String("<AccessSecret>"),
// 访问的 Region
RegionId: tea.String("<RegionId>"),
}
client, _err := ecs20140526.NewClient(config)
if _err != nil {
panic(_err)
}
describeRegionsRequest := &ecs20140526.DescribeRegionsRequest{}
// 创建RuntimeObject实例并设置运行参数。
runtime := &util.RuntimeOptions{}
// 开启自动重试机制
runtime.Autoretry = tea.Bool(true)
// 设置自动重试次数
runtime.MaxAttempts = tea.Int(3)
resp, _err := client.DescribeRegionsWithOptions(describeRegionsRequest, runtime)
if _err != nil {
panic(_err)
}
// response 包含服务端响应的 body 和 headers
body, err := json.Marshal(resp.Body)
if err != nil {
panic(err)
}
fmt.Printf("body: %s\n", string(body))
}
反馈
- 本页导读 (1)
文档反馈