quartz定时器cron语法

2019-07-25 17:44:20 浏览数 (2)

前言:因为之前没有接触cron语法,所以每次设置时间的时候就得请教别人。现在整理了一些常用的。有个自动生成cron语法的工具:http://cron.qqe2.com/

Cron表达式的格式:秒 分 时 日 月 周 年(可选)。

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

秒 0-59 , - *

分 0-59 , - * /

小时 0-23 , - * /

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

月 1-12 or JAN-DEC , - * /

周几 1-7 or SUN-SAT , - * ? / L C #

年 (可选字段) empty, 1970-2099 , - * /

“?”字符:表示不确定的值

“,”字符:指定数个值

“-”字符:指定一个值的范围

“/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m

“L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X

“#”字符:表示该月第几个周X。6#3表示该月第3个周五

表达式意义

"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点到下午2:59期间的每1分钟触发

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

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

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

"0 10,44 14 ? 3 WED" 每年三月的星期三的下午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 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发

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

每隔1分钟执行一次:0 */1 * * * ?

每天23点执行一次:0 0 23 * * ?

每天凌晨1点执行一次:0 0 1 * * ?

每月1号凌晨1点执行一次:0 0 1 1 * ?

每月最后一天23点执行一次:0 0 23 L * ?

每周星期天凌晨1点实行一次:0 0 1 ? * L

在26分、29分、33分执行一次:0 26,29,33 * * * ?

每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?

此外还包括一些特殊符号

– ,

用–与,实现用以形成与/或关系,如放在Day of week域中’MON-FRI’表示周一到周五,’ MON-WED,SAT’表示”周一到周三还包括周六”

*

每个、任何,如放在Month域中就表示每个月

/

指定递增的时间段,如’0/15’在分钟域表示”每15分钟,开始是第零分钟”,如’3/20’在分钟域表示”一个小时间每隔20分钟,在第三分钟时开始”

?

该符号只能放在Day of month与Day of week域中,不指定值,当在这两个域中指定其中之一时而不指定另外一个时,那么另外一个就用?替代

L

该符号只能放在Day of month与Day of week域中,在Day of month域中表示当月的最后一天,如果在Day of week域只有L表示这个星期的最后一天同’ 7’或’ SAT’意义相同,但如果在L前面还有内容就表示这个月的最后一个星期几,如’6L’ or ‘FRIL’就表示这个月的最后一个星期五

W

指定与工作日最接近的一天,如在day-of-month域中’15W’表示与这个月第15天最近的那个工作日的那一天

#

指定一个月中的第n个星期几,如’ "6#3" or "FRI#3"在Day of week域中表示”每个月的第三个星期”

用例:

"0 0/5 * * * ?" 每5分钟触发一次

"10 0/5 * * * ?" 每5分钟的第10钞触发一次(i.e. 10:00:10 am, 10:05:10 am, etc.).

"0 30 10-13 ? * WED,FRI" 每周三与周五的10:30, 11:30, 12:30, and 13:30触发

"0 0/30 8-9 5,20 * ?" 在每月的第五与第20天的8:00, 8:30, 9:00 and 9:30触发,但不包括10:00

0 人点赞