在想到建立索引的时候要用自动调度的方法。
原因很简单,你的索引要更新的。所以想到了自动调度。当然那就想到了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 " ); } } |