Mengendalikan Tindakan Akhir Pelaksanaan untuk Pelayan HTTP
Pelayan HTTP yang dimulakan dengan http.Handle selalunya memerlukan tindakan khusus selepas penamatan. Artikel ini meneroka penyelesaian untuk melaksanakan tindakan ini dengan berkesan pada sistem Linux.
Satu pendekatan melibatkan penggunaan modal pada isyarat Unix, terutamanya isyarat SIGINT yang dicetuskan oleh gangguan Ctrl-C. Dengan mendaftarkan pengendali isyarat untuk SIGINT, ia menjadi mungkin untuk melaksanakan operasi tersuai sebelum proses keluar.
Kod berikut menunjukkan kaedah ini:
import ( "log" "os" "os/signal" "syscall" ) func main() { sigchan := make(chan os.Signal, 1) signal.Notify(sigchan, syscall.SIGINT) go func() { <-sigchan // Wait for SIGINT signal log.Println("Program killed !") // Perform end-of-execution actions here // Wait for write operations to complete os.Exit(0) }() // Start HTTP server and associated tasks }
Dengan menyediakan goroutine khusus untuk dikendalikan isyarat SIGINT, goroutine utama boleh menumpukan pada melaksanakan tugas program utama. Setelah menerima TANDATANGAN, goroutine khusus mencetuskan tindakan pembersihan, membolehkan anda keluar dengan anggun.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Tindakan Akhir Perlaksanaan dengan Anggun dalam Pelayan HTTP Go di Linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!