“github.com/jasonlvhit/gocron”

    var wg sync.WaitGroup//保证主 goroutine 不退出
    wg.Add(1)
    gocron.Every(10).Seconds().Do(func(){
        fmt.Println("ok")
    })
    t := time.Date(2021, 3, 18, 16, 0, 0, 0, time.Local)
    gocron.Every(5).Seconds().From(&t).Do//设置开始时间

gocron.Every(1).Second().Do(task)//每秒
    gocron.Every(2).Seconds().Do(task)//每2秒,1秒以上带s
    gocron.Every(1).Minute().Do(task)//每分钟
    gocron.Every(2).Minutes().Do(task)//每两分钟
    gocron.Every(1).Hour().Do(task)//每小时
    gocron.Every(2).Hours().Do(task)//每2小时
    gocron.Every(1).Day().Do(task)//每天
    gocron.Every(2).Days().Do(task)//每两天
    gocron.Every(1).Week().Do(task)//每周
    gocron.Every(2).Weeks().Do(task)//每两周
    以下支持具体时间At("18:30:59")
    gocron.Every(1).Day().At("10:30").Do(fn, 1, "hello")//每天十点半
    gocron.Every(1).Monday().Do(task)每周一
    gocron.Every(1).Tuesday().Do()每周二
    gocron.Every(1).Wednesday().Do()每周三
    gocron.Every(1).Thursday().Do()每周四
    gocron.Every(1).Friday().Do()每周五
    gocron.Every(1).Saturday().Do()每周六
    gocron.Every(1).Sunday().Do()每周日
    <- gocron.Start()
    wg.Wait()
  • cron
`go get -u github.com/robfig/cron`
type fn struct {
}
func (this fn)Run()  {
    fmt.Println(12)
}

    i:=0
    c := cron.New()
    c.AddFunc("0/5 * * * * *", func() {
        i++
        log.Println("运行任务",i)
    })
    c.AddJob("0/3 * * * * *", fn{})
    c.Start()
    select{}
    defer c.Stop()
文档更新时间: 2021-12-06 04:50   作者:Yoby