Existe-t-il un moyen d'effectuer des tâches répétitives en arrière-plan dans Go? Je pense à quelque chose comme Timer.schedule(task, delay, period)
à Java. Je sais que je peux faire ça avec un goroutine et Time.sleep()
, mais j'aimerais quelque chose qui s'arrête facilement.
Voici ce que j'ai, mais me semble laid. 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)
}
t := time.Tick(time.Duration(period) * time.Second)
où la période est uneint