并发请求
更新时间:
本文介绍如何开启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)
}
文档内容是否对您有帮助?