一般我们导入import ("time")包,然后调用time.NewTicker(1 * time.Second) 实现一个定时器:
func timer( ) {
//新建计时器,120秒以后触发,go触发计时器的方法比较特别,就是在计时器的channel中发送值
tick :=time.NewTicker( 120 * time.Second)
for {
select {
//此处在等待channel中的信号,因此执行此段代码时会阻塞120秒
case <-tick:
xxx() //执行我们想要的操作
}
}
}
注意点:
- golang 的 select 就是监听 IO 操作
- case 里面应该是一个面向channel的IO操作,然后触发相应的动作。
- for循环(无限循环),即每隔120S执行一次