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");
    }
}

你可能感兴趣的:(spring,jdk,bean,xml,quartz)