Quartz框架的Cron表达式

Quartz的常用两个触发器

**SimpleTrigger:**主要用于简单的调度。比如在给定的时间内重复执行,或者间隔固定时间执行。
**CronTrigger:**用于执行复杂的调度。例如,需要在除了双休日的每天上午8点调度任务。CronTrigger是基于UnixCron的表达式的。
Cron表达式有如下两种语法格式:
1.Seconds Minutes Hours DayofMonth Month DayofWeek Year
2.Seconds Minutes Hours DayofMonth Month DayofWeek
每个域可出现的字符如下。
Seconds:可出现,、-、、/四个特殊字符和数字,有效范围为0~59的整数。
Minutes:可出现,、-、
、/四个特殊字符和数字,有效范围为0~59的整数。
Hours:可出现,、-、、/四个特殊字符和数字,有效范围为0~23的整数。
DayofMonth:可出现,、-、
、/、?、L、W、C八个特殊字符和数字,有效范围为1~31的整数。
Month:可出现,、-、、/四个特殊字符和数字,有效范围为1~12或JAN-DEC。
DayofWeek:可出现,、-、
、/、?、L、#、C八个特殊字符和数字,有效范围为1~7或SUN-SAT。其中1表示星期日,2表示星期一,以此类推。
Year:可出现,、-、*、/四个特殊字符和数字,有效范围为1970~2099的整数。
:表示匹配该区域的任意值。如果在Minutes域使用,表示每分钟都会触发事件
?:只能用在DayofMonth和DayofWeek两个域。它也会匹配域的任意值,实际应用中则不会,因为DayofMonth和DayofWeek两个域会互相影响。例如,想在每月20日触发调度,无论20日是星期几都只能使用 0 0 1 20 * ?这种写法,最后一位只能用?,而不能用星号。
-:表示范围。如果在Minutes域使用5-20,表示从5分钟到20分钟每分钟触发一次。
/:表示从起始时间开始触发,每隔固定时间触发一次。例如,在Minutes域使用5/20,则意味着五分钟触发一次,然而在25/45等分钟时分别触发一次。
,:表示列出枚举值。例如,在Minutes域使用5,20,表示在5分钟和20分钟分别触发一次。
L:表示最后。只能用在DayofMonth和DayofWeek两个域,如果在DayofWeek域使用5L,则意味着在最后一个星期四触发。
W:表示有效工作日(星期一到星期五)。只能出现在DayofMonth域,系统将在离指定日期最近的有效工作日触发事件。例如,使用5W,如果5日是星期六,则将在最近的工作日星期一,即4日触发;如果5日是星期一到星期五中的一天,则就在5日触发。注意,W不会垮月寻找,例如1W,1日恰好是星期六,系统不会再上月的最后一天触发,而是到3日触发。
LW:这两个字符可以连接使用,表示某个月最后一个工作日,即最后一个星期五。
#:用于确定每个月的第几个星期几,只能出现在DayofWeek域。例如4#5,表示某个月的第5个星期三。

你可能感兴趣的:(quartz,Cron表达式)