一个cron表达式有至少6个(也可能是7个)由空格分隔的时间元素。从左至右,这些元素的定义如下:
*是一个通配符,表示任何值,用在Minutes字段中表示每分钟。
?只可以用在day-of-month或者Day-of-Week字段中,用来表示不指定特殊的值。
-用来表示一个范围,比如10-12用在Month中表示10到12月。
,用来表示附加的值,比如MON,WED,FRI在day-of-week字段中表示礼拜一和礼拜三和礼拜五。
/用来表示增量,比如0/15用在Minutes字段中表示从0分开始0和15和30和45分。
L只可以用在day-of-month或者Day-of-Week字段中,如果用在Day-of-month中,表示某个月
的最后一天,1月则是表示31号,2月则表示28号(非闰年),如果用在Day-of-Week中表示礼
拜六(数字7);然则如果L与数字组合在一起用在Day-of-month中,比如6L,则表示某个月
的最后一个礼拜六;
C
W
#
0 1 0 1 1-12 ?表示每月1号0点1分执止。
0 0 21 ? * 1表示每个礼拜天21点0分执止。
0 0 0 * * ?表示天天0点0分执止。
0 * 22 * * ?表示天天22点开始每分钟
0 * 0-23 * * ?表示天天每分钟
2.分钟(0–59)
3.小时(0–23)
4.月份中的日期(1–31)
5.月份(1–12或JAN–DEC)
6.星期中的日期(1–7或SUN–SAT)
7.年份(1970–2099)
每一个元素都可以显式地规定一个值(如6),一个区间(如9-12),
一个列表(如9,11,13)或一个通配符(剑灵如*)。“月份中的日期”和“星期中的日期”
这两个元素是互斥的,因而应该通过设置一个问号(?)来表明你不想设置的那个字段。
下表中显示了一些cron表达式的例子和它们的意义:
表 达 式 | 意 义 |
0 0 10,14,16 * * ? | 天天上午10点,下午2点和下午4点 |
0 0,15,30,45 * 1-10 * ? | 每月前10天每隔15分钟 |
30 0 0 1 1 ? 2012 | 在2012年1月1日午夜过30秒时 |
0 0 8-5 ? * MON-FRI | 每个工作日的工作时间 |
Quartz中CronTrigger介绍
使用CronTriggerBean完全能够满足课程主任的期看了。此刻剩下要做的只是启动这个工作了。
对于cronReportTrigger,我们设置cronExpression为0 0 6 * * ?可以把它读作
“在任何月份任何日期(不管是星期几)的6时0分0秒执止触收器。”换句话说,
这个触收器会在天天凌晨6:00执止。
Quartz中CronTrigger的expression:"Cron-Expression"
"Cron-Expression"与linux中的crontab有很大的不同,古天差点迷惑了我。
1.秒(0–59)
Field Name Allowed Values Allowed Special Characters
Seconds 0-59 , - * /
Minutes 0-59 , - * /
Hours 0-23 , - * /
Day-of-month 1-31 , - * ? / L W C
Month 1-12 or JAN-DEC , - * /
Day-of-Week 1-7 or SUN-SAT , - * ? / L C #
Year (Optional) empty, 1970-2099 , - * /
"Cron-Expression"由6到7个用空格分开的字段组成的表达式这6或7个字段必须遵循下面的顺
序和格式: