简介
在跑任务程序的时候,我们希望在某个时间点执行某些操作,这时候就可以使用cron快速实现。
Go实现
在Go开源项目中有好几个都有实现cron的功能,例如:
github.com/robfig/cron这个项目下有支持秒级别的cron任务,最新版本反而不支持,需要注意,目前最新版本是v3,如果不指定版本号,默认是使用v1的版本
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 {}
}
?总结
一般分钟级别的就够用了,需要精确时间的任务,可以使用秒级别的。

本文暂时没有评论,来添加一个吧(●'◡'●)