玉米种植技术

| 分类 JAVA  | 标签 corn  quartz  java 

表达式

Cron 表达式包括下面7个字段并区别顺序:

秒0-59分0-59小时0-23月内日期1-31月1-12或者JAN-DEC周内日期1-7或者SUN-SAT年(可选字段)留空或者1970-2099

支持的通配符如下:

通配符 描述
斜线(/) 表示给定值的增加幅度。例如,在秒字段中”5/15”代表从第5秒开始,每15秒一次。
问号(?) 只有在月内日期和周内日期字段中可用。表示这个字段不包含具体值。所以,如果指定月内日期,可以在周内日期字段中插入”?”,表示周内日期值无关紧要。注意:无关 Quartz,而是 Spring 集成 Quartz 后,它自己加的一个约束,那就是:日期(1-31)和星期(SUN-SAT)两者,必须有一个是问号(?),系统在启动的时候,Spring会检查表达式,如果不符合它的规则,就会抛异常。所以在使用的时候这个地方一定要注意,而在 Linux 上执行 Cron 是没有这个限制的。
字母(L) 是 last 的缩写,只有在月内日期和周内日期字段中可用。放在月内日期字段中,表示安排在当月最后一天执行。在周内日期字段中,如果”L”单独存在,就等于”7”,否则代表当月内周内日期的最后一个实例。所以”1L”表示安排在当月的最后一个星期日执行。
字母(W) 表示把执行安排在最靠近指定值的工作日。把”1W”放在月内日期字段中,表示把执行安排在当月的第一个工作日内。
井号(#) 表示为给定月份指定具体的工作日。把”MON#2”放在周内日期字段中,表示把任务安排在第二个星期一。
星号(*) 是通配字符,表示该字段可以接受任何可能的值、表达式。
连接符(-) 表示一个范围。

例子

示例 描述
“0 0 08 * * ?” 每天上午8点触发
“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 2009-2019” 2009年至2019年的每月的最后一个星期五上午10:15触发
“0 15 10 ? * 6#3” 每月的第三个星期五上午10:15触发

上一篇     下一篇