ホームページ  >  記事  >  バックエンド開発  >  GoLang のデフォルトの HTTP クライアントは、サーバーが利用できない場合に自動的にリクエストを再試行しますか?

GoLang のデフォルトの HTTP クライアントは、サーバーが利用できない場合に自動的にリクエストを再試行しますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-03 22:48:03319ブラウズ

Does GoLang's default HTTP client automatically retry requests when the server is unavailable?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。