我有一些必须定期运行的功能。我为此使用了自动收报机。但是如果代码已经在运行,并且时间间隔再次过去,它不应该再次执行。
package main
import (
"fmt"
"time"
)
func main() {
ticker := time.NewTicker(3*time.Second)
flag := 0
defer ticker.Stop()
for {
select {
case t := <-ticker.C:
flag = flag + 1
if (flag % 2 ==0 ) {
time.Sleep(time.Second*4)
}
fmt.Println("Current time: ", t)
}
}
}
https://play.golang.org/p/2xV2MYInn4I
在操场上,自动收报机每 3 秒打印一次,但每次自动收报机的偶数转一圈,作业所花费的时间都比间隔时间长。我希望它不会运行并放弃那些滴答声。
我该怎么做呢?
翻过高山走不出你
莫回无
HUX布斯
随时随地看视频慕课网APP
相关分类