springframework已经内置对Quartz的支持,
org.springframework.scheduling.quartz.CronTriggerBean和
org.springframework.scheduling.quartz.JobDetailBean都不需要实面调用起来非常方便,只需在配置文件里面配置就可,大大提高了项目的开发效率。
CronTriggerBean 可以设定制定的任务在任一时刻调用
JobDetailBean 用来指定调用制度任务
接下来就是定时业务的具体实现:
首先建立调度任务(TimeExample)必须继承rg.springframework.scheduling.quartz.QuartzJobBean
实现QuartzJobBean的protected void executeInternal(JobExecutionContext arg0)方法。
业务逻辑都是放在executeInternal中,在指定的任务时间JobDetailBean调用 指定的具体任务。
代码如下:
制定任务
配置文件:
ps:
value="0 30 0 * * ? *" 时间设定6或7个字符以空格隔开
表1. cronExpression的时间格式
位置 - 含义
1 - 秒(0–59)
2 - 分(0–59)
3 - 时(0–23)
4 - 日(1–31)
5 - 月(1–12)
6 - 星期(SUN–SAT or 1–7)
7 - 年(可选, 1970–2099)
"0 0 12 * * ?" 每天中午12点触发
"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:00期间的每5分钟触发
"0 0/5 14,18 * * ?" 在每天下午2点到2:00期间和下午6点到6:00期间的每5分钟触发
"0 0-5 14 * * ?" 在每天下午2点到下午2:00-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 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发