Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menutup Permintaan HTTP untuk Pemprosesan Latar Belakang dengan Betul?
Menutup Permintaan HTTP untuk Pemprosesan Latar Belakang Dengan Betul
Dalam permintaan HTTP, selalunya wajar untuk bertindak balas dengan segera semasa memproses muatan permintaan dalam latar belakang. Ini dicapai dengan mengakui permintaan dengan kod status 202 Diterima, membolehkan pelanggan meneruskan tanpa menunggu selesai tugas latar belakang.
Membalas dengan 202 Diterima
Untuk mengendalikan permintaan sedemikian dengan betul, adalah penting untuk menutup permintaan selepas menghantar pengepala 202 Accepted. Ini kerana pengembalian daripada pengendali menandakan selesainya permintaan. Oleh itu, adalah disyorkan untuk menutup permintaan secara eksplisit sebelum memulakan tugas latar belakang:
<code class="golang">func index(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusAccepted) go sleep() return // Close the request }</code>
Membalas dengan 200 OK
Apabila membalas dengan 200 OK, ia sudah memadai untuk kembali daripada pengendali, kerana pengepala HTTP akan ditetapkan secara automatik untuk menunjukkan respons yang berjaya.
<code class="golang">func index(w http.ResponseWriter, r *http.Request) { go sleep() return // Close the request }</code>
Awas
Adalah penting untuk ambil perhatian bahawa HTTP nilai permintaan dan respons tidak boleh digunakan dalam goroutine latar belakang selepas permintaan ditutup, kerana ia mungkin digunakan semula.
Atas ialah kandungan terperinci Bagaimana untuk Menutup Permintaan HTTP untuk Pemprosesan Latar Belakang dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!