Avatar ·

Wie stoppt man eine Goroutine in Go korrekt? Probleme beim Beenden von Hintergrundaufgaben

Hallo zusammen! Ich bin ein Go-Anfänger und habe ein Problem mit der Verwaltung von Goroutinen. Ich schreibe einen kleinen Service, der regelmäßig den Status einer externen API überprüft und einen lokalen Cache aktualisiert. Dafür starte ich eine Hintergrund-Goroutine mit einer Endlosschleife und time.Sleep. Das Problem ist, dass ich die Goroutine beim Beenden des Programms (z.B. mit Strg+C) oder bei Bedarf eines Neustarts nicht korrekt stoppen kann. Wenn ich einfach main beende, hängt die Goroutine weiter oder es kommt zu einer Panic. Ich habe versucht, ein globales Flag `var running bool` zu verwenden und es in der Schleife zu überprüfen, aber das wirkt nicht sofort, und manchmal blockiert die Goroutine bei I/O-Operationen. Hier ist ein Beispiel meines Codes: ```go package main import ( "fmt" "time" ) func worker() { for { fmt.Print