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