如何在golang中实现重试逻辑,以便每5分钟调用rest api来获取令牌

问题描述 投票:0回答:1

我必须在 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)
api go post https token
1个回答
0
投票

你可以将上面的代码做成一个函数,并在外面添加时间控制:

// 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)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.