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 중국어 웹사이트의 기타 관련 기사를 참조하세요!