cron表达式详解

Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义。

Cron有如下两种语法格式:

Seconds Minutes Hours DayofMonth Month DayofWeek Year

Seconds Minutes Hours DayofMonth Month DayofWeek

1. 结构

cron从左到右(用空格隔开):秒 分 小时 月份中的日期 月份 星期中的日期 年份

2. 每个字段的允许值

字段 允许值 允许的特殊字符

秒 0-59 , - * /

分 0-59 , - * /

小时 0-23 , - * /

日期 1-31 , - * ? / L W C

月份 1-12 或者 JAN-DEC , - * /

星期 1-7 或者 SUN-SAT , - * ? / L C #

年(可选) 留空, 1970-2099 , - * /

3. 特殊字符的意义

**:表示匹配该域的任意值。

?:只能用在DayofMonth和DayofWeek两个域。它也匹配域的任意值,但实际不会。

-:表示范围。

/:表示起始时间开始触发,然后每隔固定时间触发一次。

,:表示列出枚举值。

L:表示最后,只能出现在DayofWeek和DayofMonth域。

W:表示有效工作日(周一到周五),只能出现在DayofMonth域,系统将在离指定日期的最近的有效工作日触发事件。

LW:这两个字符可以连用,表示在某个月最后一个工作日,即最后一个星期五。

井号:用于确定每个月第几个星期几,只能出现在DayofMonth域。

4. 常用表达式例子

(1)0 0 2 1 * ? *  表示在每月的1日的凌晨2点调整任务

(2)0 15 10 ? * MON-FRI  表示周一到周五每天上午10:15执行作业

(3)0 15 10 ? 6L 2002-2006  表示2002-2006年的每个月的最后一个星期五上午10:15执行作

(4)0 0 10,14,16 * * ?  每天上午10点,下午2点,4点

(5)0 0/30 9-17 * * ?  朝九晚五工作时间内每半小时

(6)0 0 12 ? * WED    表示每个星期三中午12点

(7)0 0 12 * * ?  每天中午12点触发

(8)0 15 10 ? * *    每天上午10:15触发

(9)0 15 10 * * ?    每天上午10:15触发

(10)0 15 10 * * ? *    每天上午10:15触发

(11)0 15 10 * * ? 2005    2005年的每天上午10:15触发

(12)0 * 14 * * ?    在每天下午2点到下午2:59期间的每1分钟触发

(13)0 0/5 14 * * ?    在每天下午2点到下午2:55期间的每5分钟触发

(14)0 0/5 14,18 * * ?    在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发

(15)0 0-5 14 * * ?    在每天下午2点到下午2:05期间的每1分钟触发

(16)0 10,44 14 ? 3 WED    每年三月的星期三的下午2:10和2:44触发

(17)0 15 10 ? * MON-FRI    周一至周五的上午10:15触发

(18)0 15 10 15 * ?    每月15日上午10:15触发

(19)0 15 10 L * ?    每月最后一日的上午10:15触发

(20)0 15 10 ? * 6L    每月的最后一个星期五上午10:15触发

(21)0 15 10 ? * 6L 2002-2005  2002年至2005年的每月的最后一个星期五上午10:15触发

(22)0 15 10 ? * 6#3  每月的第三个星期五上午10:15触发

5. 表达式生成器

http://cron.qqe2.com/

你可能感兴趣的:(cron表达式详解)