Go-cron定时任务

1、cron(计划任务)

按照约定的时间,定时的执行特定的任务(job)。

cron 表达式 表达了这种约定。 cron 表达式代表了一个时间集合,使用 6 个空格分隔的字段表示。

秒 分 时 日 月 星期

 

2、Linux的cron与Go的cron区别

linux 中的 cron 只能精确到分钟,而Go 实现的 cron 可以精确到秒。

 

3、特殊字符说明

1)星号(*)
表示 cron 表达式能匹配该字段的所有值。如在第5个字段使用星号(month),表示每个月2)斜线(/)
表示增长间隔,如第1个字段(minutes) 值是 3-59/15,表示每小时的第3分钟开始执行一次,之后每隔 15 分钟执行一次(即 3、18、33、48 这些时间点执行),这里也可以表示为:3/153)逗号(,)
用于枚举值,如第6个字段值是 MON,WED,FRI,表示 星期一、三、五 执行4)连字号(-)
表示一个范围,如第3个字段的值为 9-17 表示 9am 到 5pm 直接每个小时(包括9和17)5)问号(?)
只用于日(Day of month)和星期(Day of week),\表示不指定值,可以用于代替 *

 

4、cron举例说明

每隔5秒执行一次:*/5 * * * * ?每隔1分钟执行一次:0 */1 * * * ?每天23点执行一次:0 0 23 * * ?每天凌晨1点执行一次:0 0 1 * * ?每月1号凌晨1点执行一次:0 0 1 1 * ?在26分、29分、33分执行一次:0 26,29,33 * * * ?每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?

 

5、示例代码

 1 package main
 2 
 3 import (
 4     "github.com/robfig/cron"
 5     "log"
 6 )
 7 
 8 func main() {
 9     i := 0
10     c := cron.New()
11     spec := "*/5 * * * * ?"
12     c.AddFunc(spec, func() {
13         i++
14         log.Println("cron running:", i)
15     })
16     c.Start()
17     
18     select{}
19 }
最简单crontab任务

启动后输出如下:

cron running : 1
cron running : 2
cron running : 3
cron running : 4
cron running : 5
...
 1 package main
 2 
 3 import (
 4     "github.com/robfig/cron"
 5     "log"
 6     "fmt"
 7 )
 8 
 9 type TestJob struct {
10 }
11 
12 func (this TestJob)Run() {
13     fmt.Println("testJob1...")
14 }
15 
16 type Test2Job struct {
17 }
18 
19 func (this Test2Job)Run() {
20     fmt.Println("testJob2...")
21 }
22 
23 //启动多个任务
24 func main() {
25     i := 0
26     c := cron.New()
27     
28     //AddFunc
29     spec := "*/5 * * * * ?"
30     c.AddFunc(spec, func() {
31         i++
32         log.Println("cron running:", i)
33     })
34     
35     //AddJob方法
36     c.AddJob(spec, TestJob{})
37     c.AddJob(spec, Test2Job{})
38     
39     //启动计划任务
40     c.Start()
41     
42     //关闭着计划任务, 但是不能关闭已经在执行中的任务.
43     defer c.Stop()
44     
45     select{}
46 }
多个定时crontab任务

启动后输出如下:

testJob1...
2017/07/07 18:46:40 cron running: 1
testJob2...
2017/07/07 18:46:45 cron running: 2
testJob1...
testJob2...
2017/07/07 18:46:50 cron running: 3
testJob1...
testJob2...
2017/07/07 18:46:55 cron running: 4
testJob1...
testJob2...
testJob2...
testJob1...
2017/07/07 18:47:00 cron running: 5
...

 

转载于:https://www.cnblogs.com/Paul-watermelon/p/11135188.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/482963.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2021年突破人类想象力的6大科学纪录

来源:《科技日报》 人类每年都在创造历史,科学家们也在不断创造新纪录,今年也不例外!美国《科学新闻》杂志网站在12月20日的报道中,为我们梳理了2021年令人惊奇的6大科学纪录,包括发现迄今最古老的黑洞以及…

操作系统学习笔记-01-操作系统的概念(定义),功能和目标

操作系统学习笔记-2019 王道考研 操作系统-01-操作系统的概念(定义),功能和目标 文章目录1-操作系统的概念(定义),功能和目标1.1常见的操作系统1.2概念(定义)1.3-操作系统的功能和目…

从复现人类智能到挑战AI大工程,智能计算正经历什么考验?

来源:AI科技评论作者:杏花编辑:青暮世界顶级机器学习专家Michael I.Jordan曾提出一个观点,他认为人工智能正逐步由原理性研究,走向人工智能大工程。Michael I.Jordan认为,随着机器学习的蓬勃发展&#xff0…

操作系统学习笔记-02-操作系统的特征

操作系统学习笔记-2019 王道考研 操作系统-2-操作系统的特征 文章目录02-操作系统四个的特征2.1-知识概览2.2并发2.3共享2.3并发和共享的关系2.4虚拟2.5小结:虚拟技术2.6-异步2.7知识回顾02-操作系统四个的特征 2.1-知识概览 2.2并发 并发:指两个或多个事件在同-一…

从宇宙、互联网和脑的关系看元宇宙的终极形态

作者 刘锋 曾经在2012年写过一篇论文《THE EVOLUTION ROAD MAP FROM THE ORIGIN OF LIFE TO THE INTELLIGENT UNIVERSE》,探讨了关于宇宙、互联网和脑之间的内在联系,阐述面本世纪以来,互联网为核心的科技生态出现越来越多的类脑特征&#xf…

操作系统学习笔记-03-操作系统的发展和分类

操作系统学习笔记-2019 王道考研 操作系统-01-操作系统的概念(定义),功能和目标 文章目录3-操作系统的发展和分类3.1知识总览3.2 手工操作,纸带机,串行式3.3批处理阶段-单道批处理系统-多道批处理系统3.4分时操作系统3…

马斯克炮轰元宇宙与Web3.0:“我不觉得有人会成天把屏幕绑在脑袋上”

来源:雷峰网元宇宙和 Web3.0据称将是彻底改变数字世界的两种趋势。但现实世界中的首富、硅谷钢铁侠埃隆马斯克对两者似乎都并不怎么看好。在最近的一次采访中,马斯克表示,他在市场上并没有看到任何值得注意的元宇宙VR应用,并表示他…

操作系统学习笔记-04-操作系统的运行机制和体系结构

操作系统学习笔记-2019 王道考研 操作系统-04-操作系统的运行机制和体系结构 文章目录4-操作系统的运行机制和体系结构4.1知识总览4.2运行机制4.2.1预备知识:什么是指令?4.2.2两种指令,两种处理器状态,两种程序4.2.3运行机制小结4…

因果推断——现代统计的思想飞跃

来源:数学文化”公众号编辑:李达审核:范杰、李祺垣1 引言探求事物的原因,是人类永恒的精神活动之一。从古希腊的哲学到中国先秦的诗歌,都充满了对原因的追问和对因果关系的思考。比如,亚里士多德就在《物理…

操作系统学习笔记-05-中断和异常

操作系统学习笔记-2019 王道考研 操作系统-05-中断和异常 文章目录5-中断和异常5.1知识概览5.2 中断机制的诞生5.3中断概念和作用5.4中断的分类5.5 外中断的处理过程5.6思维导图5-中断和异常 5.1知识概览 5.2 中断机制的诞生 之前说的多道批处理系统,cpu给每个进程…

量化集体行为特刊:信息论为量化集体性提供形式化框架

来源:Theory in Biosciences译者:郭瑞东 审校:张澳 编辑:邓一雪 导语集体行为作为复杂系统的典型特征,存在大量有关同步、自组织的定量研究。然而,多数研究仅止步于以单一的视角或方法孤立量化集体性的某一…

操作系统学习笔记-06-系统调用

操作系统学习笔记-2019 王道考研 操作系统-06-系统调用 文章目录6-系统调用6.1 知识概览6.2什么是系统调用?有什么作用?6.3系统调用与库函数的区别6.4系统调用背后的过程6.5思维导图6-系统调用 6.1 知识概览 6.2什么是系统调用?有什么作用&a…

《Engineering》评选2021年全球十大工程成就

来源:中国工程院院刊“2021全球十大工程成就”发布工程是现实的、直接的生产力,是人类改变世界的重要活动。古往今来,人类创造了众多令人惊叹的工程成就,持续带动着经济发展和社会的深刻变革,推动人类文明迈上更高的台…

Gartner 2022年新兴技术和趋势影响力雷达图中五项具有影响力的技术

来源:Gartner公司编辑:蒲蒲如果一幢建筑能够告诉您暖通空调系统中的过滤器导致系统运行效率低下并需要更换,是不是会对您很有帮助?如果该系统还可以根据使用情况来调整暖风或通风呢?您目前的系统是否能够主动追踪建筑内…

计算机网络学习笔记-1.1.3-速率相关的性能指标

计算机网络-2019 王道考研 计算机网络-1.1.3-速率相关的性能指标 文章目录3-速率相关的性能指标性能指标之速率,带宽,吞吐量思维导图3.1速率--》传输单位你到底是咋转换的?3.2带宽--》网络水龙头你到底有多快?3.3吞吐量--》奸商&a…

吴恩达:回顾2021,这些大事件影响了AI这一年

来源:AI前线作者:Andrew Ng译者:核子可乐,刘燕12 月 23 日,机器学习大牛吴恩达(Andrew Ng)在其主编的人工智能周讯《The Batch》上发表了最新文章。文章中,吴恩达回顾了 2021 年全球…

计算机网络学习笔记-1.1.4-时延、 时延带宽积、RTT和利用率

计算机网络-2019 王道考研 计算机网络-1.1.4-时延、 时延带宽积、RTT和利用率 文章目录4-时延、 时延带宽积、RTT和利用率4.1时延--》我得小饼干你怎么还没来?4.2时延带宽积--》小饼干?小浣熊?好多好多2234.3往返时延RTT--》草(一…

2022年十大AI预测

来源:福布斯编辑:蒲蒲1 语言AI将成为核心,与其他类别的AI相比,更多的初创公司将在NLP(自然语言处理)领域获得资金。语言是人类最重要的发明。与其他属性相比,它是人类智力的决定性标志。语言…

AI 真的能够理解人类语言吗?

来源:CSDN(ID:CSDNnews)作者:Melanie Mitchell译者:弯月2011年,IBM 的人工智能系统沃森参加综艺节目《危险边缘》,并获得了冠军,当时他们宣称:“沃森能够理解…

计算机网络学习笔记-1.1.5-分层结构、协议、接口、服务

计算机网络-2019 王道考研 计算机网络-1.1.5-分层结构、协议、接口、服务 文章目录5-分层结构、协议、接口、服务5.1分层结构5.1.1为什么要分层?5.2怎么分层呢?--》论千层饼的做法?5.2.1正式认识下,我叫分层结构,协议接…