HTTP 요청 재시도 메커니즘
Q: Go를 사용하여 Apache 서버에 데이터를 푸시하려고 합니다. Apache 서버가 일시적으로 종료되는 경우 내 HTTP 요청이 자동으로 재시도됩니까?
A: 아니요, HTTP 요청은 본질적으로 서버 중단 시 재시도되지 않습니다.
사용자 정의 재시도 논리
자동 재시도를 구현하려면 고유한 재시도 메커니즘을 만들어야 합니다. 기본 구현은 다음 링크에서 확인할 수 있습니다.
[Go Retry 함수 예시](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 중국어 웹사이트의 기타 관련 기사를 참조하세요!