有没有办法在Go中执行重复的后台任务? 我在想在Java中类似这样的 Timer.schedule(task, delay, period)
我知道我可以用goroutine和Time.sleep()来完成这个任务,但是我想要一些容易停止的东西。
这就是我得到的,但是对我来说看起来很丑。 有没有更干净/更好的方法?
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)
}
转载于:https://stackoverflow.com/questions/16466320/is-there-a-way-to-do-repetitive-tasks-at-intervals-in-golang