Golang实现定时任务
Golang实现定时任务
package main import ( "fmt" "github.com/robfig/cron/v3" ) func main() { // 每天凌晨0点执行一次:0 0 0 * * ? // 每隔3秒执行一次:*/3 * * * * * // spec := "*/3 * * * * *" spec := "* * * * *" c := cron.New(cron.WithSeconds()) c.AddFunc(spec, func() { fmt.Println("execute") }) go c.Start() defer c.Stop() select {} }
启动多个任务
type TestJob struct { } func (this TestJob)Run() { fmt.Println("testJob1...") } type Test2Job struct { } func (this Test2Job)Run() { fmt.Println("testJob2...") } //启动多个任务 func main() { i := 0 c := cron.New() //AddFunc spec := "*/5 * * * * ?" c.AddFunc(spec, func() { i++ fmt.Println("cron running:", i) }) //AddJob方法 c.AddJob(spec, TestJob{}) c.AddJob(spec, Test2Job{}) //启动计划任务 c.Start() //关闭着计划任务, 但是不能关闭已经在执行中的任务. defer c.Stop() select{} }