Quartz任务调度
1.任务类
2.spring的xml配置
[code="java"]
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<bean id="testDao" class="com.tts.test.dao.impl.TestDaoImpl">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="testService" class="com.tts.test.service.impl.TestServiceImpl">
</bean>
<!-- 线程执行器配置,用于任务注册 -->
<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>
<!-- 业务对象 -->
<bean id="bizObject" class="com.tts.test.job.Job" />
<!-- 调度业务 -->
<bean id="jobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="bizObject" />
<property name="targetMethod" value="doBiz" />
</bean>
<!-- 触发器 -->
<bean id="trigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="jobDetail" />
<property name="cronExpression" value="00 0/1 * * * ?" />
</bean>
<!-- 设置调度 -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="trigger" />
</list>
</property>
<property name="taskExecutor" ref="executor" />
</bean>
</beans>
3.结果:
2013-11-20 14:32:00,270 INFO - Quartz-----------------------------------4
2013-11-20 14:33:00,005 INFO - Quartz-----------------------------------4
2013-11-20 14:34:00,005 INFO - Quartz-----------------------------------4
2013-11-20 14:35:00,005 INFO - Quartz-----------------------------------4
1.任务类
public class Job {
private static Log log = LogFactory.getLog(Job.class);
//调度任务方法
public void doBiz() {
//获取已注入的bean,如果new出来的是没有注入的
WebApplicationContext context =
ContextLoader.getCurrentWebApplicationContext();
TestService Testservice = (TestService) context.getBean("testService");
List list = Testservice.getUsers();
log.info("Quartz-----------------------------------"+list.size());
}
}
2.spring的xml配置
[code="java"]
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<bean id="testDao" class="com.tts.test.dao.impl.TestDaoImpl">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="testService" class="com.tts.test.service.impl.TestServiceImpl">
</bean>
<!-- 线程执行器配置,用于任务注册 -->
<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>
<!-- 业务对象 -->
<bean id="bizObject" class="com.tts.test.job.Job" />
<!-- 调度业务 -->
<bean id="jobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="bizObject" />
<property name="targetMethod" value="doBiz" />
</bean>
<!-- 触发器 -->
<bean id="trigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="jobDetail" />
<property name="cronExpression" value="00 0/1 * * * ?" />
</bean>
<!-- 设置调度 -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="trigger" />
</list>
</property>
<property name="taskExecutor" ref="executor" />
</bean>
</beans>
3.结果:
2013-11-20 14:32:00,270 INFO - Quartz-----------------------------------4
2013-11-20 14:33:00,005 INFO - Quartz-----------------------------------4
2013-11-20 14:34:00,005 INFO - Quartz-----------------------------------4
2013-11-20 14:35:00,005 INFO - Quartz-----------------------------------4