• 1 cron 如果是V3版本,创建对象时如果定时任务粒度要细化到秒级别时,必须携带cron.WithSeconds()参数,V3版本默认不再是支持秒级别定时任务,默认时从分钟域开始执行!

import (
    "github.com/robfig/cron/v3"
    "fmt"
    "time" ) func main() { c := cron.New(cron.WithSeconds()) c.AddFunc("*/5 * * * * ?", func(){ fmt.Println("xxx") }) c.Start() defer c.Stop() for { time.Sleep(time.Second) } } 

  • 2 如果是老的版本cron,默认是支持秒级别粒度,不需要携带cron.WithSeconds()参数

import (
    "fmt"
    "github.com/robfig/cron"
    "time" ) func main() { c := cron.New() c.AddFunc("*/1 * * * * ?", func() { fmt.Println("xxx") }) go c.Start() defer c.Stop() for { time.Sleep(time.Second) } } 

  • 3 定时参数设定
    “/” ==> 指隔多久执行一次
    “,” ==> 指用来列举一些离散的值和多个范围,例如将周历的域(第 6 个)设置为MON,WED,FRI表示周一、三和五
    “-” ==> 指时间间隔范围,比如:在分钟一栏,3-18表示3-18分钟之间,包括3分和18分。
    “?” ==> 问号表示每月/每周的任意一天,只能用在月和周的域中.

1  "0 0 0 * * *"  每天的 0点启动  * 通配符可以匹配任何数字
2  "*/5 * * * * *" 表示每隔5秒钟执行一次
3  "*/1 * * * *"  表示每隔1分钟执行一次,比秒级别解析器少了个*
4  "30 * * * *"  分钟域为 30,其他域都是*表示任意。每30分触发
5  "30 3-6,20-23 * * *":分钟域为 30,小时域的3-6,20-23表示 3 点到 6 点和 20 点到 23 点。每小时的30 分钟触发.
6  "0 0 0 * * ?"  表示每天0点执行一次
7  "0 0 1 1 * ?"  表示每月1号凌晨1点执行一次
8  "0 1,2,3 * * * ?" 表示在1分,2分,3分执行一次
9  "0 0 0,1,2 * * ?" 表示每天的0点,1点,2点执行一次

  • 4 如果解析器不指定秒级别粒度,V3默认时以分为粒度,时间参数会长短不一样,下面是5个参数,指定秒级就是6个参数!!!

func main() { c := cron.New() //自定义解析器 c.AddFunc("*/1 * * * *", func() { //注意,这里,跟秒级别有差别 fmt.Println("每隔1分钟", time.Now().Format("2006-01-02 15:04:05")) }) // c.AddFunc() 可以同时进行多个定时任务. go c.Start() defer c.Stop() for { time.Sleep(time.Second) } } 

作者:are_you_ok_

链接:https://www.jianshu.com/p/12c9cb7dc013

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

原文地址:http://www.cnblogs.com/cheyunhua/p/16888711.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性