全部產品
Search
文件中心

Alibaba Cloud SDK:並發請求

更新時間:Jul 01, 2024

本文介紹如何開啟Go SDK Client的並發功能。

開啟 SDK Client 的並發功能

  • 因 Go 語言的並發特性,我們建議您在應用程式層面控制 SDK 的並發請求。

  • 為了方便您的使用,我們也提供了可直接使用的並發調用方式,相關的並發控制由 SDK 內部實現。

package main

import (
        "fmt"
	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
	"github.com/aliyun/alibaba-cloud-sdk-go/services/ecs"
	"os"
)

func main() {
	// 最大並發數,可選,預設5
	poolSize := 2
	// 可快取的最大請求數,可選,預設1000
	maxTaskQueueSize := 5
	// 在建立時開啟非同步功能
	config := sdk.NewConfig().WithEnableAsync(true).WithGoRoutinePoolSize(poolSize).WithMaxTaskQueueSize(maxTaskQueueSize)
	// 初始化credential
	credential := &credentials.AccessKeyCredential{AccessKeyId: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), AccessKeySecret: os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")}
	ecsClient, err := ecs.NewClientWithOptions("cn-beijing", config, credential)
        if err != nil {
		fmt.Printf("Error : %v\n", err)
		return
	}	
        // 也可以在client初始化後再開啟
	ecsClient.EnableAsync(poolSize, maxTaskQueueSize)
}