HTTP リクエストでの自動再試行
質問:
GoLang でプッシュ試行中データを Apache サーバーに送信すると、サーバーが一時的に利用できなくなる可能性があります。このようなシナリオでは、HTTP リクエストは自動的に再試行されますか?
答え:
いいえ、GoLang のデフォルトの HTTP クライアントは HTTP リクエストを自動的に再試行しません。
再試行メソッドの実装:
カスタム再試行メカニズムを実装するには、次の例を検討してください:
<code class="go">package main import ( "fmt" "io/ioutil" "log" "net/http" ) func main() { var ( err error response *http.Response retries int = 3 ) for retries > 0 { response, err = http.Get("https://non-existent") if err != nil { log.Println(err) retries -= 1 } else { break } } if response != nil { defer response.Body.Close() data, err := ioutil.ReadAll(response.Body) if err != nil { log.Fatal(err) } fmt.Printf("data = %s\n", data) } }</code>
このコードは、基本的な再試行メカニズムを示しています。失敗するまでに最大 3 回の再試行が可能です。 HTTP リクエストは、成功するか、指定された再試行回数に達するまで繰り返し発行されます。
以上がGoLang のデフォルトの HTTP クライアントは、サーバーが利用できない場合に自動的にリクエストを再試行しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。