Avatar ·

Comment arrêter correctement une goroutine en Go ? Problèmes d'arrêt des tâches en arrière-plan

Bonjour à tous ! Je suis un développeur Go débutant et j'ai un problème avec la gestion des goroutines. J'écris un petit service qui vérifie périodiquement l'état d'une API externe et met à jour un cache local. Pour cela, je lance une goroutine en arrière-plan avec une boucle infinie et time.Sleep. Le problème est que lorsque le programme se termine (par exemple avec Ctrl+C) ou lorsque je dois redémarrer la goroutine, je ne peux pas l'arrêter correctement. Si je termine simplement le main, la goroutine reste bloquée ou panique. J'ai essayé d'utiliser un flag global `var running bool` et de le vérifier dans la boucle, mais cela ne fonctionne pas instantanément, et parfois la goroutine se bloque sur des opérations d'entrée-sortie. Voici un exemple de mon code : ```go package main import ( "fmt" "time" ) func worker() { for { fmt.Print