一、增加所依赖的JAR包
1、增加Spring的Maven依赖
<
dependency
>
<
groupId
>org.springframework</
groupId
>
<
artifactId
>spring-webmvc</
artifactId
>
<
version
>3.0.5.RELEASE</
version
>
</
dependency
>
2、增加Quartz的Maven依赖
<
dependency
>
<
groupId
>org.quartz-scheduler</
groupId
>
<
artifactId
>quartz</
artifactId
>
<
version
>1.8.4</
version
>
</
dependency
>
二、增加定时业务逻辑类
public class ExpireJobTask {
private static final Logger logger = LoggerFactory.getLogger(ExpireJobTask.class);
public void doBiz() {
// 执行业务逻辑
// ........
}
}
ExpireJobTask业务逻辑类与一般普通的类没有任务区别,它定义的doBiz方法即为调度业务方法
三、增加Spring配置
1、增加一个线程池
<!-- 线程执行器配置,用于任务注册 -->
<
bean
id="executor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<
property
name="corePoolSize" value="10" />
<
property
name="maxPoolSize" value="100" />
<
property
name="queueCapacity" value="500" />
</
bean
>
2、定义业务逻辑处理类
<!-- 业务对象 -->
<
bean
id="bizObject" class="com.aboy.potak.common.toolkit.scheduling.ExpireJobTask" />
3、增加调度业务逻辑
<!-- 调度业务 -->
<
bean
id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<
property
name="targetObject" ref="bizObject" />
<
property
name="targetMethod" value="doBiz" />
</
bean
>
上面的配置中,我们以bizObject.doBiz方法为将要调度的业务执行逻辑。
4、增加调度触发器
<
bean
id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<
property
name="jobDetail" ref="jobDetail" />
<
property
name="cronExpression" value="10 0/1 * * * ?" />
</
bean
>
Cron表达式“10 */1 * * * ?”意为:从10秒开始,每1分钟执行一次。
<
bean
id="taskTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<
property
name="jobDetail" ref="jobDetail" />
<
property
name="startDelay" value="10000" />
<
property
name="repeatInterval" value="60000" />
</
bean
>
该调度表示,延迟10秒启动,然后每隔1分钟执行一次。
5、增加调度
<!-- 设置调度 -->
<
bean
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<
property
name="triggers">
<
list
>
<
ref
bean="cronTrigger" />
</
list
>
</
property
>
<
property
name="taskExecutor" ref="executor" />
</
bean
>
triggers属性中,我们可以增加多个触发器。
到此,Spring已经与Quartz完美的结合了,我们接下来的工作就是启动系统,开始调度了。