我对golang不熟悉,但是我想更改一个源代码,该源代码每分钟到每秒将数据写入数据库。我很难找到Tick在代码中的作用。 config.SampleRate为整数= 1,表示每分钟=每60秒
此价格变动的全部内容及其末尾部分:<-价格变动,并与计数器i组合?
i := 0
tick := time.Tick(time.Duration(1000/config.Samplerate) * time.Millisecond)
for {
// Restart the accumulator loop every 60 seconds.
if i > (60*config.Samplerate - 1) {
i = 0
//some code here
}
//some code there
}
<-tick
i++
答案 0 :(得分:2)
tick
是Go中的频道。如果您查看docs,则tick
应该每个时间间隔向通道发送一次消息,该间隔由代码中的time.Duration(1000/config.Samplerate) * time.Millisecond
指定。 <-tick
仅等待该时间间隔过去。
i
会跟踪经过了几秒钟,因此,每次滴答滴答时,您都将一个数字添加到i
中。 if语句检查何时经过一分钟。
因此,if语句中的代码每60秒触发一次,而if块下的代码则每秒触发一次。