Go 代码中实现后台周期性(每隔一段时间)执行某个任务
使用 time.Tick 方法是 time.NewTicker 的封装。
time.Tick 在到达设定时间时返回一个 Time 类型的 channel ,利用 for range 即可实现定时执行任务 :
package main
import "fmt"
import "time"
func main() {
go heartBeat()
time.Sleep(time.Second * 5)
}
func heartBeat() {
for range time.Tick(time.Second * 1) {
fmt.Println("Foo")
}
}
关于 LearnKu
感觉,习惯直接用NewTicker了
感觉这样更方便接收cancelFunc来关服务,防止内存泄漏
初学,请教这个方法不用关闭channel么