我需要使用Golang设置特定时间的任务。例如,作业有结束时间,所以我需要更改表格上的一些行。我搜索了它,但我只能找到Cron的定期任务。我不想每隔5分钟设置一个cron来检查数据库。
jasonlvhit 在Golang上为Cron创建了一个名为 gocron 的库,但我不认为它对我的问题有用。
解决:
在@ JimB的评论之后我查了时间库和time.AfterFunc函数的文档可以帮我解决这个问题。在func函数之后需要一个必须为纳秒的持续时间,所以如果你创建像nanoSecondsToSecond()这样的东西
time.AfterFunc(nanoSecondToSecond(10), func() {
printSometing("Mert")
})
如果定义了printSomething函数,则可以在闭包时调用它。
func printSometing(s string) {
fmt.Println("Timer " + s)
}
答案 0 :(得分:1)
你可以尝试这样的事情。我把它放在它自己的go例程中,这样它就不会阻塞,并且可以在它下面运行加法代码。通常与服务器结合使用
ticker := time.NewTicker(5 * time.Minute)
go func(ticker *time.Ticker) {
for {
select {
case <-ticker.C:
// do something every 5 minutes as define by the ticker above
}
}
}(ticker)