1 回答

TA貢獻1789條經驗 獲得超8個贊
如錯誤所述,您無法同時添加策略。我建議您并行生成創建請求并序列化實際的 API 調用。您可以通過緩沖通道和多個 go 例程來實現此目的。例如:
var(
backlogSize = 3 //change as per your needs
requests = make(chan *monitoring.AlertPolicy, backlogSize)
)
func createPolicies(){
...
go func(){
//init the service
...
for policy := range requests {
p, err := service.Projects.AlertPolicies.Create("projects/abc-app", policy).Context(context.Background()).Do()
if err != nil {
log.Println(err)
}
}
}()
go func(){
newPolicy := &monitoring.AlertPolicy
//fill policy
...
requests <- newPolicy
}()
...
//wait for completion and close requests channel
}
另一種解決方案是使用指數退避+抖動重試每個失敗的并發請求
- 1 回答
- 0 關注
- 159 瀏覽
添加回答
舉報