我必须在 golang 中每 5 分钟调用一次 api 来捕获响应?如何在golang中实现重试逻辑,以便每5分钟调用rest api来获取响应令牌?
res, err := http.Get("https://mydadisjoke.com/Acct?")
if err != nil {
return "", err
}
// defining a struct instance
var KeyID Response
// data in JSON format which
// is to be decoded
Data := []byte(`{
"Key" : "Key",
"Account" : "Account",
}`)
// decoding Response struct
// from json format
err := json.Unmarshal(Data, &KeyId)
if err != nil {
fmt.Println(err)
}
// printing details of
// decoded data
fmt.Println("Struct is:", KeyId)
fmt.Printf("Key is %s\n", KeyId.Key)
你可以将上面的代码做成一个函数,并在外面添加时间控制:
// define function
func doHttpCall() error {
// above code
if err != nil {
return err
}
return nil
}
// visit every 5min
func main() {
for {
err := doHttpCall()
if err != nil {
fmt.Println("API call failed:", err)
} else {
fmt.Println("API call success")
}
time.Sleep(5 * time.Minute)
}
}