简介
Ticker是周期性定时器,即周期性的触发一个事件,通过Ticker本身提供的管道将事件传递出去。
Ticker的数据结构与Timer完全一致:
type Ticker struct {
C <-chan Time
r runtimeTimer
}
Ticker对外仅暴露一个channel,指定的时间到来时就往该channel中写入系统时间,也即一个事件。
在创建Ticker时会指定一个时间,作为事件触发的周期。这也是Ticker与Timer的最主要的区别。
另外,ticker的英文原意是钟表的"滴哒"声,钟表周期性的产生"滴哒"声,也即周期性的产生事件。
使用场景
简单定时任务
有时,我们希望定时执行一个任务,这时就可以使用ticker来完成。
下面代码演示,每隔1s记录一次日志:
// TickerDemo 用于演示tic