简介
在跑任务程序的时候,我们希望在某个时间点执行某些操作,这时候就可以使用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 {}
}
?
总结
一般分钟级别的就够用了,需要精确时间的任务,可以使用秒级别的。
本文暂时没有评论,来添加一个吧(●'◡'●)