Cron 表达式
来源:互联网 发布:大数据时代质量管理 编辑:程序博客网 时间:2024/06/16 14:13
最近在调研Quartz,而Quartz使用到了类似于Linux下的Cron 表达式定义时间规则,所以来学习一下!
首先Cron 是一个字符串,由6个(或者7个)由空格分割的时间字段组成,如下图所示:
位置 时间域名 可选值 允许的特殊字符 1 秒(Second) 0-59 , - * / 2 分(Minutes) 0-59 , - * / 3 时(Hour) 0-23 , - * / 4 日(DayofMonth) 1-31 , - * ? / L W C 5 月(Month) 1-12 , - * / 6 周(DayofWeek) 1-7 , - * ? / L C # 7 年(Year 可选) 空值或1970-2099 , - * /
为什么说Cron表达式 是由6个 或7个 字段组成的呢?相信大家看完表格就知道了,因为 年 这个时间域名是可选的。
下面来讲讲 Cron表达式中特殊字符的含义:
- 星号(*): 可用在所有的时间字段上,表示每一个时刻, 例如,* 在秒字段时,表示“每秒”;
- 减号(-): 表示一个范围,例如, 10-12 在 小时字段 ,表示 10点到12点,即 10,11,12;
- 逗号 (,) : 表示一个列表值,例如在小时字段中使用 10,11,12 ,表示 10点到12点;
- 问号 ( ? ) : 问号这个字符 只在日期和星期字段中使用,例如想在每月的10日触发调度,不管10日到底是星期几,则只能使用如下写法: * * 15 20 * ?, 其中最后一位只能用?,而不能使用*,如果使用*表示不管星期几都会触发,实际上并不是这样。
- 斜杠 ( / ) : x/y 表示一个等长的序列,x为起始值,y为步长(递增值,就是每次都加一个 y), 例如在秒字段 5/3, 表示 5,8,11,14...., 也可以使用*/y,他表示0/y(从0开始)。
- L : 只在日期和星期字段中使用,代表“Last”的意思。L 在日期字段中表示当前月的最后一天,如一月的 31号,非闰年二月的28号;
如果L用在星期中,则表示星期六,等同于7。但是,如果L出现在星期字段里,而且在前面有一个数值X,则表示“这个月的最后 X天”,例如,6L表示该月的最后星期五;
井号 ( # ):该字符只能在星期字段中使用,表示当月某个工作日。如6#3表示当月的第三个星期五(6表示星期五,#3表示当前的第三个),而4#5表示当月的第五个星期三,假设当月没有第五个星期三,忽略不触发;
LW组合:在日期字段可以组合使用LW,它的意思是当月的最后一个工作日;
W:该字符只能出现在日期字段里,是对前导日期的修饰,表示离该日期最近的工作日。例如15W表示离该月15号最近的工作日,如果该月15号是星 期六,则匹配14号星期五;如果15日是星期日,则匹配16号星期一;如果15号是星期二,那结果就是15号星期二。但必须注意关联的匹配日期不能够跨 月,如你指定1W,如果1号是星期六,结果匹配的是3号星期一,而非上个月最后的那天。W字符串只能指定单一日期,而不能指定日期范围
以下是一些常用的Cron表达式:
0 0 10,14,16 * * ? 每天上午10点,下午2点,4点 0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时 0 0 12 ? * WED 表示每个星期三中午12点 0 0 12 * * ? 每天中午12点触发 0 15 10 ? * * 每天上午10:15触发 0/3 * * * * ? 每3秒触发一次
- cron表达式
- Cron表达式
- Cron 表达式
- cron 表达式
- cron 表达式
- Cron- 表达式
- cron 表达式
- Cron表达式
- cron表达式
- cron表达式
- cron表达式
- cron表达式
- Cron表达式
- cron表达式
- cron表达式
- cron表达式
- Cron表达式
- CRON表达式
- 【NOIP2013提高组】火柴排队
- 信道安全
- 使用SwipeBackLayout设置windowIsTranslucent导致Activity动画失效
- HDU 1231 最大连续子序列(DP)
- SearchView
- Cron 表达式
- load initialize
- C语言链表(十七)
- 一个命令设置进入越狱iPhone不需要输入密码
- 关于GCD总结(参考大神博客+自己想法)
- JS的基础类型与引用类型
- An example for accessing remote mysql server
- uva 10115
- APP在线演示预览网站appetize.io详细使用介绍