Avatar ·

Wie man wiederkehrende Aufgaben in Go mit einem bestimmten Intervall ausführt?

Hallo zusammen! Ich bin neu in Go und schreibe einen kleinen Dienst für das Monitoring. Ich muss, dass das Programm alle 5 Sekunden den Status eines entfernten Servers überprüft und das Ergebnis in ein Log schreibt. Ich habe versucht, `time.Sleep()` in einer Endlosschleife zu verwenden, aber das wirkt wie ein Workaround und blockiert anscheinend das gesamte Programm falsch. Hier ist mein aktueller Code: ```go package main import ( "fmt" "time" ) func main() { for { fmt.Println("Überprüfe Server...") // hier etwas Logik für die Überprüfung time.Sleep(5 * time.Second) } } ``` Das Problem ist, dass ich, wenn ich diese Schleife stoppen möchte (z.B. durch ein Programm-Beendigungssignal), auf das Ende von `Sleep` warten muss. Außerdem habe ich gehört, dass es in Go Goroutinen und Channels gibt, aber ich verstehe nicht, wie ich sie für diese Aufgabe anwenden kann. Könnt ihr mir sagen, ob es in Go eine Standardmethode gibt, um wiederkehrende Aktionen in gleichen Zeitabständen auszuführen? Idealerweise mit der Möglichkeit eines graceful shutdown. Ich wäre für Codebeispiele dankbar.