一、cron表达式
(1)知识点:
①cron表达式按顺序依次表示:秒(0-59)、分钟(0-59)、小时(0-23)、天(月)(1-该月最大的天数)、月(1-12)、天(星期)(1-7 或SUN、MON、TUE、WEB、THU、FRI、SAT)
英文表示:econds Minutes Hours DayofMonth Month DayofWeek Year
②"/"字符表示指定数值的增量 3/15:从3单位时间开始,每15单位时间运行一次
"*"字符表示所有可能的值
"?"表示不指定值(仅用于天(月)和天(星期)),这两个表达式中一个被指定了值,则另外一个需要设为"?"
③"L"字符仅用于天(月)和天(星期)两个子表达式上。
在天(月)表达式中,"L"表示一个月的最后一天
在天(星期)表达式中,"L"表示一个星期的最后一天(也就是SAT) 5L:表示周四
④"-"字符表示范围,例如5-15 :从5分到15分每分钟触发一次
⑤","字符表示列出枚举类 例如5,20 :在5分钟和20分钟每分钟触发一次
⑥"W"字符表示有效工作日(周一到周五),系统将在离指定日期的最近的有效工作日触发事件,仅用于天(月)表达式。
⑦"#"字符表示每个月第几个星期几 例如 4#2:某月的第二个星期三
⑧"C"字符表示计划所关联的日期,如果日期没有被关联,则相当于日历中所有的日期。
(2)总结表(字段、允许值、允许的特殊字符)
秒 | 0-59 | , - * / |
分 | 0-59 | , - * / |
小时 | 0-23 | , - * / |
日期 | 1-31 | , - * ? / L W C |
月份 | 1-12 或JAN-DEC | , - * / |
星期 | 1-7 或者 SUN(1)-SAT(7) | , - * ? / L C # |
年(可选) | 留空, 1970-2099 | , - * / |
(3)重要例子:
①0 30 10 ? * MON-FRI 表示周一到周五每天上午10:15执行作业
②0 30 10 ? 6L * 2012-2018 表示2012-2018年的每个月的最后一个星期五上午的10:30执行作业
③0 0/30 9-17 * * ? 表示每天的9点到17点,每隔30分钟执行一次作业
④0 0/5 14,18 * * ? 表示每天14点到18点,每隔5分钟触发一次执行
⑤0 30 10 ? * 6#3 表示每月的第三个星期五的10:30执行作业
⑥0 30 10 ? * 6L 表示每月的最后一个星期五上午10:30执行作业