首页 > 解决方案 > 在 go (golang) 中每天触发一次滴答声 - 不是通过轮询

问题描述

我正在使用 go 1.14

我想每天触发一次,但据我从源代码了解,这些Timer函数是轮询的,而不是等待一些信号。

这是真的吗?如果是这样,每天触发一次事件的最佳方式是什么?投票方式在我看来很过分。

标签: performancegotime

解决方案


的 go 源time.NewTicker(...)似乎使用了未通过轮询实现的通道,因此您应该能够简单地执行以下操作:

t := time.NewTicker(24 * time.Hour)
for _ = range t.C {
    // ...
}

你也可以使用time.Sleep(...)

for {
  // ...
  time.Sleep(24 * time.Hour)
}

推荐阅读