Cron定时规则
计划可安排像每周一到周五早上8点或每月最后一个星期五的早上1点半。
一个表达式是用6个或7个用空格分离的字符串来组成,以下为可选的字段。
Field Name Allowed Values Allowed Special Characters
Seconds 0-59 , - * /
Minutes 0-59 , - * /
Hours 0-23 , - * /
Day-of-month 1-31 , - * ? / L W C
Month 1-12 or JAN-DEC , - * /
Day-of-Week 1-7 or SUN-SAT , - * ? / L C #
Year (Optional) empty, 1970-2099 , - * /
*字符串通常用来所有字段中,例如,*在分钟字段意思为“每分钟”
?字符串通常使用“day-of-month”和“day-of-week”字段中,它通常指定为“不是特殊值”。
-字符串被指定范围中,例如“10-12”在小时字段中,就意思为10点,11点和12点。
,字符串被用作为附加值,例如“MON,WED,FRI”在星期字段中就意味的,星期一,星期三和星期五
/字符串被用作为增量,例如,在分钟字段中“0/15”就表示为0,15,30和45秒,而“5/15”在分钟字段中表示5,20,35,50,你可以将“/”放在“*”之后,在这里,*相当于在“/”前面放个“0”
L字符串被允许在“day-of-month”和“day-of-week”字段中,这个字符串相当于“last”的简写,但它在这两个字段中有不同的意思。例如,在“day-of-month”字段中就意味这个月份的最后一天,如一月是31日,非闰年二月是28日,如果这个字符串用在“day-of-week”,它就意味7或星期六,但是如果它使用在“day-of-week”字段里面的其他值之后的话,它就意味“这个月的最后XXX天”,例如,“6L”就意味该月的最后个星期五。
W字符串可在“day-of-month”字段,这个字符串被用作所赋予的日期的工作日中,例如,如果你在“day-of-month”字段上指定“15W”,哪意思是该月离15日最近的工作日。如果15日是星期六,哪就将触发结果为14日星期五。如果15日是星期日,那结果将是16日星期一,如果15日是星期二,那结果是15日星期二,可是如果你指定是“1W”,如果1日是星期六,哪结果将是3日星期一,这是因为它不会跨越月份的边界,W字符串只能指定单一日期,而不能指定日期范围。
L和W字符中也能够组合在“day-of-moth“字段中,表达式是“LW”,它的意思是当月的最后一个工作日。
#字符串被使用在“day-of-week”字段中,该字符串被指定在当月的哪一天的情况下,例如,在“day-of-week”字段中值“6#3”表示当月的第三个星期五(6表示星期五,#3表示当前的第三个)。“2#1”表示当月的第一个星期一,“4#5”表示当月的第五个星期三,注意的是如果你指定是“#5”,那当月中如果没有第五个的话,它并不会触发。
C字符串被允许在“day-of-month”和“day-of-week”字段中,这个字符串是“calendar”的简写,它的意思是计划所关联的日期,如果日期没有被关联,那他相当于日历中所有日期,例如值“5C”在“day-of-month”字段中就相当于日历5日以后的第一天。“1C”在“day-of-week”字段中就相当于星期日后的第一天。
示例:
Expression Meaning
"0 0 12 * * ?" 每天的12点
"0 15 10 ? * *" 每天的10:15
"0 15 10 * * ?" 每天的10:15
"0 15 10 * * ? *" 每天的10:15
"0 15 10 * * ? 2005" 在2005年的每天的10:15
"0 * 14 * * ?" 每天的2点到3点。
"0 0/5 14 * * ?" 每天的2点到2:55点每5钟运行一次。
"0 0/5 14,18 * * ?" 每天的2点到2:55点,且6点到6:55点每五钟运行一次
"0 0-5 14 * * ?" 每天2点到2:05分。
"0 10,44 14 ? 3 WED" 3月的每周三的2:10分到2:44分。
"0 15 10 ? * MON-FRI" 每周一,二,三,四,五的10:15分
"0 15 10 15 * ?" 每月的15日的10:15分
"0 15 10 L * ?" 每月的最后一天的10:15分
"0 15 10 ? * 6L" 每月的最后一个星期五的10:15分
"0 15 10 ? * 6L" 每月的最后一个星期五的10:15
"0 15 10 ? * 6L 2002-2005" 在2002,2003,2004,2005年的每个月的最后一个星期五的10:15分。
"0 15 10 ? * 6#3" 每月的第三个星期五的10:15分。
计划可安排像每周一到周五早上8点或每月最后一个星期五的早上1点半。
一个表达式是用6个或7个用空格分离的字符串来组成,以下为可选的字段。
Field Name Allowed Values Allowed Special Characters
Seconds 0-59 , - * /
Minutes 0-59 , - * /
Hours 0-23 , - * /
Day-of-month 1-31 , - * ? / L W C
Month 1-12 or JAN-DEC , - * /
Day-of-Week 1-7 or SUN-SAT , - * ? / L C #
Year (Optional) empty, 1970-2099 , - * /
*字符串通常用来所有字段中,例如,*在分钟字段意思为“每分钟”
?字符串通常使用“day-of-month”和“day-of-week”字段中,它通常指定为“不是特殊值”。
-字符串被指定范围中,例如“10-12”在小时字段中,就意思为10点,11点和12点。
,字符串被用作为附加值,例如“MON,WED,FRI”在星期字段中就意味的,星期一,星期三和星期五
/字符串被用作为增量,例如,在分钟字段中“0/15”就表示为0,15,30和45秒,而“5/15”在分钟字段中表示5,20,35,50,你可以将“/”放在“*”之后,在这里,*相当于在“/”前面放个“0”
L字符串被允许在“day-of-month”和“day-of-week”字段中,这个字符串相当于“last”的简写,但它在这两个字段中有不同的意思。例如,在“day-of-month”字段中就意味这个月份的最后一天,如一月是31日,非闰年二月是28日,如果这个字符串用在“day-of-week”,它就意味7或星期六,但是如果它使用在“day-of-week”字段里面的其他值之后的话,它就意味“这个月的最后XXX天”,例如,“6L”就意味该月的最后个星期五。
W字符串可在“day-of-month”字段,这个字符串被用作所赋予的日期的工作日中,例如,如果你在“day-of-month”字段上指定“15W”,哪意思是该月离15日最近的工作日。如果15日是星期六,哪就将触发结果为14日星期五。如果15日是星期日,那结果将是16日星期一,如果15日是星期二,那结果是15日星期二,可是如果你指定是“1W”,如果1日是星期六,哪结果将是3日星期一,这是因为它不会跨越月份的边界,W字符串只能指定单一日期,而不能指定日期范围。
L和W字符中也能够组合在“day-of-moth“字段中,表达式是“LW”,它的意思是当月的最后一个工作日。
#字符串被使用在“day-of-week”字段中,该字符串被指定在当月的哪一天的情况下,例如,在“day-of-week”字段中值“6#3”表示当月的第三个星期五(6表示星期五,#3表示当前的第三个)。“2#1”表示当月的第一个星期一,“4#5”表示当月的第五个星期三,注意的是如果你指定是“#5”,那当月中如果没有第五个的话,它并不会触发。
C字符串被允许在“day-of-month”和“day-of-week”字段中,这个字符串是“calendar”的简写,它的意思是计划所关联的日期,如果日期没有被关联,那他相当于日历中所有日期,例如值“5C”在“day-of-month”字段中就相当于日历5日以后的第一天。“1C”在“day-of-week”字段中就相当于星期日后的第一天。
示例:
Expression Meaning
"0 0 12 * * ?" 每天的12点
"0 15 10 ? * *" 每天的10:15
"0 15 10 * * ?" 每天的10:15
"0 15 10 * * ? *" 每天的10:15
"0 15 10 * * ? 2005" 在2005年的每天的10:15
"0 * 14 * * ?" 每天的2点到3点。
"0 0/5 14 * * ?" 每天的2点到2:55点每5钟运行一次。
"0 0/5 14,18 * * ?" 每天的2点到2:55点,且6点到6:55点每五钟运行一次
"0 0-5 14 * * ?" 每天2点到2:05分。
"0 10,44 14 ? 3 WED" 3月的每周三的2:10分到2:44分。
"0 15 10 ? * MON-FRI" 每周一,二,三,四,五的10:15分
"0 15 10 15 * ?" 每月的15日的10:15分
"0 15 10 L * ?" 每月的最后一天的10:15分
"0 15 10 ? * 6L" 每月的最后一个星期五的10:15分
"0 15 10 ? * 6L" 每月的最后一个星期五的10:15
"0 15 10 ? * 6L 2002-2005" 在2002,2003,2004,2005年的每个月的最后一个星期五的10:15分。
"0 15 10 ? * 6#3" 每月的第三个星期五的10:15分。