当前位置: 首页 > 图文教程 > Java技术 > Web框架 > Spring与自动调度任务 基于Timer的任务调度器的应用
Web框架 中的 Spring与自动调度任务 基于Timer的任务调度器的应用
在想到建立索引的时候要用自动调度的方法。
原因很简单,你的索引要更新的。所以想到了自动调度。当然那就想到了spring.下面是自己自动调度的一些学习。
这里只采用jdk自带的timer进行的,准备在下篇文章中用Quartz调度器。
首先建立你自己要运行的类。
| package com.duduli.li; public class Display { public void disp(){ System.out.println("自动控制测试"); } } |
一个简单的java bean,其中在这里你可以替换自己的任务。
然后就是编写调度程序,这里要继承jdk中的TimerTask类,复写他的run方法。
| package com.duduli.li; import java.util.TimerTask; public class AutoRan extends TimerTask { //set方法是spring的DI private Display display; public void setDisplay(Display display) { this.display = display; } @Override public void run() { display.disp(); } } |
然后就是重要的一步,编写applicationsContext.xml了。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="display" class="com.duduli.li.Display"> </bean> <bean id="atuoRun" class="com.duduli.li.AutoRan"> <property name="display" ref="display"></property> </bean> <bean id="aR" class="org.springframework.scheduling.timer.ScheduledTimerTask"> <property name="timerTask" ref="atuoRun"></property> <!-- period多长时间运行一次,delay表示允许你当任务第一次运行前应该等待多久 --> <property name="period" value="5000"></property> <property name="delay" value="2000"></property> </bean> <bean id="test" class="org.springframework.scheduling.timer.TimerFactoryBean"> <property name="scheduledTimerTasks"> <list> <!-- 这里使用list,可以调度多个bean, --> <ref bean="aR"/> </list> </property> </bean> </beans> |
再来就是客户端调度了。
| package com.duduli.li; import org.springframework.beans.factory.BeanFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Client { public static void main(String[] args) { BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml"); factory.getBean("test"); } } |
评论 (0) All