正常使用形式如下 , 例如下面的代碼,按照5秒頻率進行執行
func cleanVisitorExpire() { go func() { log.Println("cleanVisitorExpire start...") for { //執行代碼 t := time.NewTimer(time.Second * 5) <-t.C } }() }
現在想要每天晚上12點執行 , 例如下面代碼 , 動態計算間隔的時間 , 每天晚上12點執行
func cleanLimitQueue() { go func() { for { log.Println("cleanLimitQueue start...") //執行功能 now := time.Now() // 計算下一個零點 next := now.Add(time.Hour * 24) next = time.Date(next.Year(), next.Month(), next.Day(), 0, 0, 0, 0, next.Location()) t := time.NewTimer(next.Sub(now)) <-t.C } }() }