beego 定时任务的实现

Jackey Golang 6,130 次浏览 , 2条评论
  1. package main
  2.  
  3. import (
  4. "github.com/astaxie/beego"
  5. "github.com/astaxie/beego/logs"
  6. "github.com/astaxie/beego/toolbox"
  7. )
  8.  
  9. func InitTask(){
  10. tk := toolbox.NewTask("generateWarning", "*/1 * * * * *", GenerateWarning)
  11. toolbox.AddTask("generateWarning",tk)
  12. }
  13.  
  14. func GenerateWarning() error {
  15. logs.Error("hello")
  16. return nil
  17. }
  18.  
  19. func main() {
  20. // 定时任务
  21. InitTask()
  22. toolbox.StartTask()
  23. defer toolbox.StopTask()
  24.  
  25. beego.Run()
  26. }

 

函数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 分 执行

2 条评论

  1. jason 2020年1月7日 下午1:08 回复

    hello
    请教下 收藏 页面的效果是如何做出来的
    谢谢

    • PHP二次开发 2020年1月8日 上午11:22 回复

      自己写的哦。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Go