Maison >développement back-end >Golang >Comment puis-je exécuter des opérations de nettoyage avant la fermeture d'un programme Go ?
Exécuter des opérations après avoir quitté un programme Go
Question :
Comment peut-on exécuter des opérations à la fin de l’exécution d’un programme Go ? Ceci est particulièrement pertinent pour gérer les tâches de nettoyage ou les sorties gracieuses dans les serveurs HTTP.
Réponse :
Utilisation des signaux Unix
La gestion des actions de fin d'exécution dans Go implique l'enregistrement des signaux Unix, tels que SIGINT (généré par Ctrl-C). Ce signal avertit le runtime Go lorsque le programme doit être terminé.
Extrait de code
L'extrait de code suivant montre comment capturer le signal d'interruption et effectuer des opérations de nettoyage avant sortie :
package main import ( "log" "os" "os/signal" ) func main() { // Create a channel to receive the interrupt signal. sigchan := make(chan os.Signal) signal.Notify(sigchan, os.Interrupt) // Start a goroutine to listen for the signal. go func() { <-sigchan log.Println("Program killed!") // Perform last actions and wait for all write operations to end. os.Exit(0) }() // Start the main program tasks. }
Explication
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!