Wie man eine Goroutine in Go korrekt stoppt? Probleme beim Beenden von Hintergrundaufgaben
Hallo zusammen! Ich bin ein Anfänger in der Go-Entwicklung 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 den lokalen Cache aktualisiert. Dafür starte ich eine Hintergrund-Goroutine mit einer Endlosschleife und time.Sleep.
Das Problem ist, dass ich die Goroutine nicht korrekt stoppen kann, wenn das Programm beendet wird (z.B. mit Strg+C) oder wenn ich die Goroutine neu starten muss. 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 funktioniert nicht sofort, und manchmal blockiert die Goroutine bei Ein-/Ausgabe-Operationen.
Hier ist ein Beispiel meines Codes:
```go
package main
import (
"fmt"
"time"
)
func worker() {
for {
fmt.Print
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen