实例目标:
展示如何使用Go语言进行定时任务的调度,定时执行某些操作。
代码示例:
package main
import (
"fmt"
"time"
)
func main() {
ticker := time.NewTicker(2 * time.Second) // 每2秒执行一次
// 启动一个定时任务
go func() {
for {
<-ticker.C // 每当ticker时间到达时执行
fmt.Println("Task executed at", time.Now())
}
}()
// 模拟程序运行一段时间
time.Sleep(10 * time.Second)
ticker.Stop() // 停止ticker
fmt.Println("Ticker stopped")
}
解释:
time.NewTicker()
:NewTicker
函数创建一个定时器,每过指定的时间间隔就会发送一个事件到ticker.C
channel。通过接收channel中的事件来执行定时任务。- 定时任务的执行: 每2秒钟,程序就会打印当前时间,表示定时任务已经执行。定时任务是通过goroutine并行执行的。
- 停止定时器:
使用
ticker.Stop()
停止定时器,避免程序一直运行。
应用场景:
定时任务用于处理定期执行的任务,如清理日志、周期性数据备份、定时更新等。Go语言的定时器非常适合做高效的定时调度。