利用该工具来定时的做一些任务,但是有些时候我们的进程内也希望定时的来处理一些事情,可以使用crontab。
1 任务计划
1.1 初始化一个任务
tk1 := task.NewTask("tk1", "0 12 * * * *", func(ctx context.Context) error { fmt.Println("tk1"); return nil })
函数原型:
NewTask(tname string, spec string, f TaskFunc) *Task
- tname 任务名称
- spec 定时任务格式
- f 执行的函数 func() error
1.2 加入全局的计划任务列表
task.AddTask("tk1", tk1)
1.3 开始执行全局的任务
task.StartTask()
defer task.StopTask()
2 完整任务代码
在启动程序开启任务
func main() {
task.StartTask()
defer task.StopTask()
beego.Run()
}
在需要添加任务的地方添加cron任务,这里是一个测试任务打印字符串。
tk1 := task.NewTask("tk1", "0 * * * * *", func(ctx context.Context) error { fmt.Println("tk1"); return nil })
task.AddTask("tk1", tk1)
打印信息 :
tk1
tk1