corn表达式
最近做定时任务的测试,接触到corn表达式,简单的总结一下:
首先让我们了解一下corn是什么
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业
用来做什么的
cron会根据命令和执行时间来按时来调度工作任务。
如何使用
Corn表达式是一个字符串,分为6个或者7个部分(年可以不加),每个部分代表的意义如表所示:
元素 | 秒 | 分钟 | 小时 | 天 | 月 | 星期 | 年(可选) |
---|---|---|---|---|---|---|---|
取值范围 | 0~59 | 0~59 | 0~23 | 0~31 | 1~12 或 JAN~DEC | 1~7 或 SUN~SAT(从周一开始) | 1970~2099 |
可用符号 | , - * / | , - * / | , - * / | , - * /, - * / ? L W C | , - * / | , - * / ? L C # | , - * / |
符号含义:
符号 | 含义 | 例子 |
---|---|---|
, | 表示列出枚举值 | 例如用在分钟部分 5,20 表示在第5和第20分钟的时候分别触发 |
- | 表示范围 | 例如用在分钟部分 5-20 表示从5分到20分每分钟触发一次 |
* | 表示匹配任意值 | 例如用在分钟部分 * 表示每分钟都会触发 |
/ | 左右两边都有值,左边表示起始时间,右边表示间隔时间 | 例如用在分钟部分 0/5 表示从第0分开始,每5分钟触发一次 |
? | 表示匹配任意值,只能用在天和星期的部分,一般都不同时用 | |
L | 英文last,只能用在天和星期的部分 | 例如用在天的部分5L表示倒数5天;用在星期部分,5L表示这个月的最后一个星期四 |
W | 表示有效工作日(周一到周五),只能出现在天的部分 | 例如:5W 如果5号为星期六,那么就在4号触发,如果5号是星期日,则在6号触发 |
# | 左边表示星期几,右边表示第几个星期用于确定每个月的第几个星期几只能用在星期的部分 | 例如4#2 表示某月的第二个星期三 |
一般常用的符号 , - * ? /
要记住了各个部分所代表的含义,每个部分用空格区分。多练习几遍就OK啦!
另附:在线生成corn表达式地址http://cron.qqe2.com/
希望对你有所帮助