Mekanisme Mencuba Semula Permintaan HTTP
S: Saya cuba menolak data ke pelayan Apache menggunakan Go. Jika pelayan Apache mengalami penutupan sementara, adakah permintaan HTTP saya akan cuba semula secara automatik?
J: Tidak, permintaan HTTP tidak semestinya mencuba semula apabila pelayan terputus.
Logik Cuba Semula Tersuai
Untuk melaksanakan percubaan semula automatik, anda perlu mencipta mekanisme percubaan semula anda sendiri. Pelaksanaan asas tersedia di pautan berikut:
[Go Retry Function Contoh](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>
Dalam contoh ini, mekanisme cuba semula tersuai dilaksanakan menggunakan gelung yang mencuba permintaan HTTP beberapa kali sebelum gagal. Anda boleh melaraskan bilangan percubaan semula dan logik untuk menentukan sama ada untuk mencuba semula berdasarkan keperluan khusus aplikasi anda.
Atas ialah kandungan terperinci Adakah Permintaan HTTP Cuba Semula Secara Automatik pada Gangguan Pelayan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!