Skip to content

issue9/scheduled

Repository files navigation

scheduled Go license codecov Go version PkgGoDev

scheduled 是一个计划任务管理工具

通过 scheduled 可以实现管理类似 linux 中 crontab 功能的计划任务功能。 当然功能并不止于此,用户可以实现自己的调度算法,定制任务的启动机制。

目前 scheduled 内置了以下三种算法:

  • at 在固定的时间点执行一次任务;
  • cron 实现了 crontab 中的大部分语法功能;
  • ticker 以固定的时间段执行任务,与 time.Ticker 相同;
srv := scheduled.NewServer(time.UTC, nil, nil)

ticker := func() error {
    _,err := fmt.Println("ticker @ ", time.Now())
    return err
}


expr := func() error {
    _,err := fmt.Println("cron @ ", time.Now())
    return err
}

srv.Tick(ticker, 1*time.Minute, false, false)
srv.Cron(expr, "@daily", false)
srv.Cron(expr, "* * 1 * * *", false)

ctx, cancel := context.WithCancel(context.Background())
srv.Serve(ctx)

版权

本项目采用 MIT 开源授权许可证,完整的授权说明可在 LICENSE 文件中找到。