日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

重試機(jī)制

更新時(shí)間:

本節(jié)主要介紹V2.0 Go SDK的重試機(jī)制配置方式。

說(shuō)明

在V2.0 SDK中,OpenAPI請(qǐng)求的處理邏輯內(nèi)置了網(wǎng)絡(luò)異常重試邏輯,即當(dāng)遇到網(wǎng)絡(luò)異常問(wèn)題時(shí),系統(tǒng)會(huì)自動(dòng)嘗試重新發(fā)起請(qǐng)求,以確保服務(wù)的穩(wěn)定性和可靠性。若請(qǐng)求因業(yè)務(wù)邏輯錯(cuò)誤而報(bào)錯(cuò),例如參數(shù)錯(cuò)誤、資源不存在等情況,SDK將不會(huì)執(zhí)行重試操作,這是因?yàn)闃I(yè)務(wù)層面的錯(cuò)誤通常需要應(yīng)用程序根據(jù)具體的錯(cuò)誤信息做出相應(yīng)的處理或調(diào)整,而非簡(jiǎn)單地重復(fù)嘗試。

重試機(jī)制配置方式

說(shuō)明

超時(shí)機(jī)制配置優(yōu)先級(jí):RuntimeOption配置 -> 默認(rèn),優(yōu)先級(jí)依次降低。

  • 使用默認(rèn)配置。默認(rèn)情況下不會(huì)進(jìn)行重試,如果打開(kāi)重試配置且未配置重試次數(shù),則默認(rèn)最多重試3次。

  • 通過(guò)運(yùn)行時(shí)參數(shù)(RuntimeOptions)配置重試機(jī)制。

    package main
    
    import (
    	"encoding/json"
    	"fmt"
    	"os"
    
    	openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
    	ecs20140526 "github.com/alibabacloud-go/ecs-20140526/v4/client"
    	util "github.com/alibabacloud-go/tea-utils/v2/service"
    	"github.com/alibabacloud-go/tea/tea"
    )
    
    func main() {
    	config := &openapi.Config{
    		// 從環(huán)境變量獲取RAM用戶的AccessKey ID
    		AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
    		// 從環(huán)境變量獲取RAM用戶的AccessKey Secret
    		AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
    		// Region ID
    		RegionId: tea.String("<RegionId>"),
    	}
    	client, _err := ecs20140526.NewClient(config)
    	if _err != nil {
    		panic(_err)
    	}
    	describeRegionsRequest := &ecs20140526.DescribeRegionsRequest{}
    	// 創(chuàng)建RuntimeObject實(shí)例并設(shè)置運(yùn)行參數(shù)。
    	runtime := &util.RuntimeOptions{}
    	// 開(kāi)啟自動(dòng)重試機(jī)制
    	runtime.Autoretry = tea.Bool(true)
    	// 設(shè)置自動(dòng)重試次數(shù)
    	runtime.MaxAttempts = tea.Int(3)
    	resp, _err := client.DescribeRegionsWithOptions(describeRegionsRequest, runtime)
    	if _err != nil {
    		panic(_err)
    	}
    	// response 包含服務(wù)端響應(yīng)的 body 和 headers
    	body, err := json.Marshal(resp.Body)
    	if err != nil {
    		panic(err)
    	}
    	fmt.Printf("body: %s\n", string(body))
    }