quartz_corn参数配置_复杂表达式.pdf
Quartz是一个开源的作业调度库,用于在Java应用程序中进行作业调度。Cron表达式是Quartz调度系统中用于定义作业触发时间的一种灵活而精确的方式。Cron表达式由六个或七个由空格分隔的时间字段组成,可用于设定各种周期性的作业调度计划。 Cron表达式的六个基本时间字段包括: 1. 秒(0-59) 2. 分钟(0-59) 3. 小时(0-23) 4. 日期(1-31) 5. 月份(1-12或JAN-DEC) 6. 星期几(1-7或SUN-SAT) 如果表达式包含七个时间字段,那么第七个字段是年份(1970-2099)。对于那些不是必须设置的时间字段,可以使用问号(?)作为值,表示该字段没有具体的值。 除了数值以外,Cron表达式中还可以使用一些特殊的字符来提供额外的功能,具体如下: ● 星号(*):表示该时间字段的每一个可能的值。例如,在分钟字段中使用*表示每分钟。 ● 问号(?):只能用在日期和星期字段,用来指定“无意义的值”,通常与另一个时间字段配合使用,用于表示该字段不重要。 ● 减号(-):用来表示时间字段中的范围。例如,2-5 表示2、3、4、5。 ● 逗号(,):用来指定时间字段的列表值。例如,MON,WED,FRI表示星期一、星期三和星期五。 ● 斜杠(/):表示指定时间字段的等步长序列。例如,0/15表示从0分钟开始,每隔15分钟执行一次。 ● L:只在日期和星期字段中使用,代表“Last”,在日期字段中表示该月的最后一天,在星期字段中表示星期六。如果和数字一起使用,例如6L,则表示该月的最后一个星期五。 ● W:只能用在日期字段中,表示最接近指定日的工作日。例如,15W表示15日最近的工作日。 ● LW组合:在日期字段中组合使用,表示当月的最后一个工作日。 ● 井号(#):只能在星期字段中使用,表示月份中的某个工作日。例如,6#3表示当月的第三个星期五。 ● C:只在日期和星期字段中使用,代表“Calendar”,表示计划所关联的日期。如果没有关联,则相当于日历中的所有日期。 Cron表达式对特殊字符的大小写不敏感,对于星期的缩写(如MON, TUE等)也是大小写不敏感的。不过,如果在具体实现中涉及到大小写敏感的情况,需要根据实际情况进行调整。 一些具体的Cron表达式实例: - "0 0 12 *** ?" 每天12点运行。 - "0 15 10 ? ***" 每天10:15运行。 - "0 15 10 *** ?" 每天10:15运行。 - "0 15 10 *** ? *" 每天10:15运行。 - "0 15 10 *** ? 2008" 在2008年的每天10:15运行。 - "0 0/5 14 *** ?" 每天14点到15点之间每分钟运行一次,开始于14:00,结束于14:59。 - "0 0/5 14 *** ? *" 每天14点到15点每5分钟运行一次,开始于14:00,结束于14:55。 - "0 0/5 14,18 *** ?" 每天14点到15点每5分钟运行一次,此外每天18点到19点每5分钟也运行一次。 - "0 0-5 14 *** ?" 每天14:00点到14:05,每分钟运行一次。 使用Cron表达式时,需要确保表达式的格式正确无误,并且要符合具体Quartz调度器实现的要求。如果有些时间字段不想设置,则可以用问号(?)占位,表示该字段不重要或无具体值。 请注意,在实际应用中,由于技术原因,如OCR扫描错误或漏识别,可能会影响到对文档的正确理解。因此,在编写Cron表达式时,应该确保所有细节都经过充分的检查和测试,以保证作业调度的准确性和可靠性。