HTTP リクエスト再試行メカニズム
Q: Go を使用して Apache サーバーにデータをプッシュしようとしています。 Apache サーバーが一時的にシャットダウンした場合、HTTP リクエストは自動的に再試行されますか?
A: いいえ、HTTP リクエストはサーバーの停止時に本質的に再試行されません。
カスタム再試行ロジック
自動再試行を実装するには、独自の再試行メカニズムを作成する必要があります。基本的な実装は次のリンクから入手できます:
[Go Retry Function Example](https://play.golang.org/p/_o5AgePDEXq)
<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>
この例では、カスタム再試行メカニズムは、失敗する前に HTTP リクエストを複数回試行するループを使用して実装されます。アプリケーションの特定のニーズに基づいて、再試行の数と、再試行するかどうかを決定するロジックを調整できます。
以上がHTTP リクエストはサーバー停止時に自動的に再試行されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。