package main import ( "github.com/astaxie/beego" "github.com/astaxie/beego/logs" "github.com/astaxie/beego/toolbox" ) func InitTask(){ tk := toolbox.NewTask("generateWarning", "*/1 * * * * *", GenerateWarning) toolbox.AddTask("generateWarning",tk) } func GenerateWarning() error { logs.Error("hello") return nil } func main() { // 定时任务 InitTask() toolbox.StartTask() defer toolbox.StopTask() beego.Run() }
函数NewTask(func NewTask(tname string,spec string,f TaskFunc))会返回一个新的任务,它需要三个参数:tname表示任务名称,spec为任务时间描述,f为要执行的函数。
beego中的spec设计参考Linux中cron的配置。其中前6个字段依次分别表示:秒钟:0-59、分钟:0-59、小时:1-23、日期:1-31、月份:1-12、星期:0-6(0 表示周日)。
| 实例 | 详细含义 |
|---|---|
| 0/30 * * * * * | 每 30 秒 执行 |
| 0 43 21 * * * | 21:43 执行 |
| 0 0 17 * * 1 | 每周一的 17:00 执行 |
| 0 0,10 17 * * 0,2,3 | 每周日,周二,周三的 17:00和 17:10 执行 |
| 0 0 21 * * 1-6 | 周一到周六 21:00 执行 |
| 0 */10 * * * * | 每隔 10 分 执行 |