Existe-t-il un moyen d'effectuer des tâches de fond répétitives en Go ? Je pense à quelque chose comme Timer.schedule(task, delay, period)
en Java. Je sais que je peux le faire avec une goroutine et Time.sleep()
mais j'aimerais quelque chose qui s'arrête facilement.
Voici ce que j'ai obtenu, mais ça m'a paru moche. Existe-t-il un moyen plus propre/meilleur ?
func oneWay() {
var f func()
var t *time.Timer
f = func () {
fmt.Println("doing stuff")
t = time.AfterFunc(time.Duration(5) * time.Second, f)
}
t = time.AfterFunc(time.Duration(5) * time.Second, f)
defer t.Stop()
//simulate doing stuff
time.Sleep(time.Minute)
}