Cron 表达式一篇通
Cron 表达式是什么
在介绍Cron 之前, 先看看类似的两个词,这两个词都是Linux 和Unix中的概念。
- crontab: 是Linux/Unix操作系统中的一个命令, 用于设置周期性需要被执行的命令。该命名从输入终端读取指令, 存放到系统的crontab 文件中。命令类似:
0 12 * * * /usr/local/etc/rc.d/lighttpd restart
- crond, crond 是crontab守护进程的名字, 也就是服务的名字, 比如启动该服务
service crond start
直接点说:crontab对应到一个文件 /usr/bin/crontab, 该文件记录了需要定时执行的任务,crond 服务就是读取那个文件进行实际的动作。
cron 相关的词是什么意思呢?和定时任务有什么关系呢?
crontab来源于古希腊语chronos(χρνο), 意思就是时间。 因为 cron的简洁和易读,cron已经广泛使用在排程的场景,比如:
- Jenkins 的定时任务的设置
- Spring框架对Cron 的支持
- …
cron 的语法很简单, 网络上也提供了一些在线生成的工具:
https://www.bejson.com/othertools/cron/
Cron 的语法
格式
Seconds Minutes Hours DayofMonth Month DayofWeek Year
或者
Seconds Minutes Hours DayofMonth Month DayofWeek
一个Cron表达式有 6到7个有空格分割的时间元素。按顺序依次是:
- 秒 : 0-59
-分钟 : 0-59
-小时 : 0-23
-天(月) : 0-31
-月 : 0-11
-天(星期) 1-7 , 也可以设置SUN,MON,TUE,WED,THU,FRI,SAT。1 是SUN ,
-年份 1970-2099
没有元素的值可以是:
- 一个值, 比如1
- 一个连续空间
- 一个间隔时间
1-10/2
1到10点每隔2小时 - 一个列表
1,3,5
- 通配符 *
由于“月份中的天”和“星期中的天” 这两个元素是互斥的, 必须要对其中一个设置 ?
特殊字符
*
匹配任意值/
数值的增量?
仅用于(月)天和(星期)天, 表示不指定值。L
仅用于(月)天和(星期)天, 是 Last 的意思。
在月表示月的最后一天
在星期表示星期的最后一天, 也就是SAT
前面加数字表示倒数第几, 比如 6L-
表示范围,
列出枚举值W
表示有效工作日(周一到周五), 只能出现在DayofMonth。指定日期最近的有效工作日出发条件。LW
某个月最后一个工作日, 即最后一个星期五#
用于确定每个月第几个星期几, 只能出现在DayofMonth, 4#2 表示某月的第二个星期三。
示例
0 0 9,10 * * ?
每天上午 9 点, 10点0 0/30 9-17 * * ?
每天朝9晚5每隔半小时
Cron 表达式一篇通相关推荐
- 【番外篇1】青龙面板中cron表达式新手入门教程cron的介绍与使用
cron表达式即计划任务,约定任务在特定的时间执行 cron表达式有7位和5位之分,不同位数之间以空格分隔 7位:* * * * * * * 从左到右依次代表秒.分.时.天.月.周.年,在大部分情况下 ...
- cron表达式,看这篇就够了
一个bug 昨天下午写了个定时器,遇到了个离谱的问题?!原本想让定时器每五分钟跑一次,结果启动之后迟迟不跑?研究一番之后,才发现之前对cron表达式的理解是错误的. 我是这样写的:0 5 * * * ...
- 作业调度框架 Quartz 学习笔记(三) -- Cron表达式
2019独角兽企业重金招聘Python工程师标准>>> 前面两篇说的是简单的触发器(SimpleTrigger) , SimpleTrigger 只能处理简单的事件出发,如果想灵活的 ...
- .net core 实现基于 cron 表达式的任务调度
.net core 实现基于 cron 表达式的任务调度 Intro 上次我们实现了一个简单的基于 Timer 的定时任务,详细信息可以看这篇文章 . 但是使用过程中慢慢发现这种方式可能并不太合适,有 ...
- 摆脱困境:将环境特定的Cron表达式与@Scheduled批注一起使用
@Scheduled注释提供了一种在Spring驱动的应用程序中创建计划任务的简便方法. 我们可以使用它通过定期调度或cron表达式来调度我们的任务. 尽管时段调度也可能有用,但是cron表达式使我们 ...
- Quartz使用总结、Cron表达式
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. Quartz可以用来做什么? Quartz是一个任务调度框架.比如你遇到这样的问题 想每月25号,信 ...
- cron表达式及其验证方法
一.表达式组成 Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: 都使用数字,但还可以出现如下特殊字符,它们的含义是: (1) ...
- spring定时任务cron为每季度第一个工作日转换为cron表达式
最近系统有个需求,执行一个定时任务发送待办事项,一年有六次,分别为每季度第一个工作日.第二季度和第四季度结束后的第十个工作日,可头疼坏了 还好我们系统有个工作日表,于是思路就是先查询出每季度的第一天, ...
- FreeMaker一篇通
FreeMaker一篇通 前言 Freemaker是一个强大的模板引擎,相比velocity而言,其强大的过程调用.递归和闭包回调功能让freemaker可以完成几乎所有我们所想的功能.从个人看法而言 ...
最新文章
- CentOS Linux解决 Device eth0 does not seem to be present
- Distance metric learning
- Common Lisp中调用R
- 论文浅尝 | ICLR2020 - 基于组合的多关系图卷积网络
- 【tyvj3303】连接格点,区分多维与单维很关键
- 边缘设备上的实时AI人员检测:选择深度学习模型
- 给对象添加属性和给对象原型添加属性的区别
- 7. namp工具的基础了解
- 人工智能书籍推荐:【A027】[图灵原创].人工智能简史
- Java给pdf添加页码(添加页眉页脚)
- 自动消防报警喷水灭火系统实训装置QY-LY154
- 计算机拨打比赛策划书,电脑打字擂台赛活动策划书
- 07:计算多项式的值
- AWD系统加固,系统渗透笔记
- UVA 11134	Fabled Rooks
- word计算机桌面加密,如何给电脑的Word文件加密
- nil Foundation blueprint模块代码解析
- CasePlayer2
- 会声会影2022永久免费版新手小白必备视频剪辑工具
- 基于《狂神说Java》Vue--学习笔记
热门文章
- [二分][贪心]JZOJ P3996 Sabotage
- PyQt4设置窗口左上角的小图标
- Git学习05 --分支管理02
- 为bootstrap+angularJs打造的表格代码生成器
- Unity cg vertex and fragment shaders(二)
- 2021高值人才职业发展洞察:连接、信任与赋能----“高能”、“高薪”、“高潜”...
- 【报告分享】2020年她趋势报告.pdf(附下载链接)
- 原生xgboost与sklearn里的xgboost
- 从Google Scholar看各大科技公司科研水平
- 机器学习深度学习知识点总结