项目背景以及问题
项目中有这样一个需求,需要用定时器在每天的上午10:00:00处理某些业务逻辑,但是遇到了2个问题。
不比比,上代码
go func() {
for {
now := time.Now()
var next time.Time
//每天10:00与苏轼论道
if now.Hour() < 10 || now.Hour() == 10 {
next = now
} else {
next = now.Add(time.Hour * 24)
}
//每天10:00与苏轼论道
next = time.Date(next.Year(), next.Month(), next.Day(

本文介绍了在Golang中实现每天10:00执行一次任务的需求时遇到的问题及解决办法。问题包括:定时器设置时间过期后仍会执行,以及服务重启导致重复执行。解决方案是通过判断当前时间是否已超过定时执行时间,若已过,则将定时器设置为次日执行,从而确保每天仅执行一次。
最低0.47元/天 解锁文章
5万+

被折叠的 条评论
为什么被折叠?



