cron 指定为某个固定的时间点_Go实现cron计划任务

简介

在跑任务程序的时候,我们希望在某个时间点执行某些操作,这时候就可以使用cron快速实现。

0c9e210da4908d03e800dca5e969ee2a.png

Go实现

在Go开源项目中有好几个都有实现cron的功能,例如:

github.com/robfig/cron

这个项目下有支持秒级别的cron任务,最新版本反而不支持,需要注意,目前最新版本是v3,如果不指定版本号,默认是使用v1的版本

10c46ce2c3a251df3fbc0dc74cf2d167.png

v1版本

这个版本最低是分秒级别

package main​import (    "fmt"    "time"​    "github.com/robfig/cron")​func main() {    fmt.Println("starting....")    c := cron.New()    err := c.AddFunc("*/5 * * * * *", func() {        fmt.Println(time.Now(), "opcai")    })    if err != nil {        panic(err)    }    err = c.AddFunc("*/5 * * * * *", func() {        fmt.Println(time.Now(), "linux")    })    if err != nil {        panic(err)    }    c.Start()    select {}}​

v3版本

这个版本最低是分钟级别

package main​import (    "fmt"    "time"​    cron "github.com/robfig/cron/v3")​func main() {    fmt.Println("starting....")    c := cron.New()    _, err := c.AddFunc("* * * * *", func() {        fmt.Println(time.Now(), "opcai")    })    if err != nil {        panic(err)    }    _, err = c.AddFunc("* * * * *", func() {        fmt.Println(time.Now(), "linux")    })    if err != nil {        panic(err)    }    c.Start()    select {}}​

总结

一般分钟级别的就够用了,需要精确时间的任务,可以使用秒级别的。

6852799fea6de2b5812a3c1fef74fce1.png

版权声明:本文为weixin_29194255原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。