spring 使用xml配置文件实现quartz作业调度
No0:准备依赖
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>1.8.5</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
No1:定义业务对象
package org.pbs.sys.test;
import java.util.Date;
import org.springframework.stereotype.Component;
/**
* 系统定时执行的job
*
* @author Energizer
*
*/
@Component("ecpJob")
public class Test {
/**
* 商户代收付查询job
*
* @author winter
*
*/
public void queryPay() {
System.out.println("==============queryPay执行,执行时间:" + new Date() + "==============");
}
}
No2:调度业务
<bean id="queryPayTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
//targetObject,targetMethod两个属性固定的
<property name="targetObject" ref="ecpJob" /><property name="targetMethod" value="queryPay" />
</bean>
No3: 增加调度触发器
<bean id="queryPayJob" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="queryPayTask"/>
<!-- 每隔1分钟post一次 -->
<property name="cronExpression" value="0 0/01 * * * ?"/>
</bean>
No3:程执行器配置,用于任务注册
<bean id="executor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<!--核心线程数-->
<property name="corePoolSize" value="10"/>
<!--最大线程数-->
<property name="maxPoolSize" value="100"/>
<!--队列最大长度-->
<property name="queueCapacity" value="500"/>
<!-- 线程池维护线程所允许的空闲时间 -->
<property name="keepAliveSeconds" value="3600" />
</bean>
No4: 设置调度
<bean id="schedulerid"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers"><list><ref bean="queryPayJob"/>
<!-- <ref bean="queryMerQueryJob"/> -->
</list></property>
</bean>