Edited at

Golangでhttp.getをリトライする

More than 1 year has passed since last update.

再帰処理をしてリトライする。

リトライ数が増えるたびに10秒タイムアウトを伸ばす


main.go

func HttpGet(url string, reTry int) *http.Response,error {

client := &http.Client{Timeout: time.Duration(10*(10-reTry)) * time.Second}
resp, err := client.Get(url)
if err != nil {
if reTry == 0 {
return nil,error
}
return HttpGet(url, reTry-1)
}
}

PS.再帰処理ってほとんど有用性無いような気がするのは俺だけ?