在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等。
我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作,但时调度控制非常不方便,并且我们需要大量的代码。
使用Quartz框架无疑是非常好的选择,并且与Spring可以非常方便的集成,下面介绍它们集成方法和Cron表达式的详细介绍。
一、增加所依赖的JAR包
1、增加Spring的Maven依赖
org.springframeworkspring-webmvc3.0.5.RELEASE
2、增加Quartz的Maven依赖
org.quartz-schedulerquartz1.8.4
二、增加定时业务逻辑类
publicclassExpireJobTask {/**Logger*/privatestaticfinalLogger logger=LoggerFactory.getLogger(ExpireJobTask.class);/*** 业务逻辑处理*/publicvoiddoBiz() {//执行业务逻辑//........}
}
ExpireJobTask业务逻辑类与一般普通的类没有任务区别,它定义的doBiz方法即为调度业务方法。
三、增加Spring配置
1、增加一个线程池
2、定义业务逻辑处理类
3、增加调度业务逻辑
上面的配置中,我们以bizObject.doBiz方法为将要调度的业务执行逻辑。
4、增加调度触发器
Cron表达式“10 */1 * * * ?”意为:从10秒开始,每1分钟执行一次。
该调度表示,延迟10秒启动,然后每隔1分钟执行一次。
5、增加调度
triggers属性中,我们可以增加多个触发器。
到此,Spring已经与Quartz完美的结合了,我们接下来的工作就是启动系统,开始调度了。