Apakah ada cara untuk melakukan tugas latar belakang berulang di Go? Saya sedang memikirkan sesuatu seperti Timer.schedule(task, delay, period)
di Jawa. Saya tahu saya bisa melakukan ini dengan goroutine dan Time.sleep()
, tetapi saya ingin sesuatu yang mudah dihentikan.
Inilah yang saya dapatkan, tetapi terlihat jelek bagi saya. Apakah ada cara yang lebih bersih / lebih baik?
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)
mana periode adalahint