go定时任务gocrontimer
- 电脑硬件
- 2025-08-21 18:06:02

选型推荐(DeepSeek)
简单任务调度: 推荐使用 cron 或 gocron,它们轻量且易用。
复杂任务调度: 推荐使用 go-quartz,支持任务依赖和持久化。
分布式任务调度: 推荐使用 asynq,基于 Redis 实现,适合分布式场景。
任务状态监控: 推荐使用 jobrunner,提供 Web 界面查看任务状态。
gocron 示例 import ( "fmt" "time" "github /go-co-op/gocron" ) func jobFunc() { fmt.Println("任务执行啦!") } func main() { fmt.Println("main ...") s := gocron.NewScheduler(time.UTC) // 每分钟执行一次任务 // s.Every(1).Second().Do(jobFunc) // 每天的固定时间执行任务 // s.Every(1).Day().At("10:30").Do(jobFunc) // 3S后执行一次 now := time.Now().Add(3 * time.Second) s.Every(1).Second().StartAt(now).LimitRunsTo(2).Do(jobFunc) s.StartAsync() time.Sleep(time.Second * 7) fmt.Println("success ...") } Timer定时器 // +main ... // 2025-02-12 16:25:58.8250935 +0800 CST m=+0.004155201 // 2025-02-12 16:26:00.8560862 +0800 CST m=+2.035117201 // 2025-02-12 16:26:03.8679151 +0800 CST m=+5.046900601 // 2025-02-12 16:26:05.873156 +0800 CST m=+7.052111201 // success ... func main() { fmt.Println("main ...") // 当前时间打印 t1 := time.Now() fmt.Println(t1.String()) timer1 := time.NewTimer(2 * time.Second) // 阻塞延迟2S t2 := <-timer1.C fmt.Println(t2.String()) // 重置,重新延迟3S timer1.Reset(3 * time.Second) t2 = <-timer1.C fmt.Println(t2.String()) // 如果没到时间 关闭timer // if timer1.Stop() { // fmt.Println("close timer success") // } // 阻塞延迟2S t3 := <-time.After(2 * time.Second) fmt.Println(t3.String()) fmt.Println("success ...") }go定时任务gocrontimer由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“go定时任务gocrontimer”