Dalam konteks pelayan HTTP mula menggunakan http.Handle, persoalan timbul tentang bagaimana untuk melaksanakan operasi tertentu pada akhir perlaksanaan program tersebut. Senario ini juga termasuk pengendalian kes apabila program ditamatkan melalui Ctrl-C.
Untuk sistem Linux, tugas ini boleh dicapai dengan memanfaatkan pakej os.Signal untuk menangkap dan mengendalikan isyarat. Jawapan yang diberikan menggunakan os.Interrupt untuk mengesan acara Ctrl-C dan memulakan operasi yang diingini sebelum keluar.
Coretan kod yang disediakan menunjukkan pelaksanaan pendekatan ini:
import ( "log" "os" "os/signal" ) func main() { // Create a channel to receive signals sigchan := make(chan os.Signal) // Register to receive interrupt signals signal.Notify(sigchan, os.Interrupt) // Start a goroutine to handle signals go func() { // Wait for an interrupt signal <-sigchan // Log the event log.Println("Program killed!") // Perform final actions and wait for write operations to complete // Exit cleanly os.Exit(0) }() // Start the main program tasks }
Dengan ini pelaksanaan, main() goroutine boleh meneruskan tugas utama program. Setelah menerima gangguan Ctrl-C, goroutine isyarat akan mengendalikan operasi pembersihan dengan anggun dan kemudian menamatkan program.
Atas ialah kandungan terperinci Bagaimana untuk Melakukan Tindakan Pembersihan Apabila Pelayan HTTP Keluar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!