spring与自动调度任务(一)

最近把以前设想做搜索引擎的想法再次提出来。刚入门4天吧。
在想到建立索引的时候要用自动调度的方法。
原因很简单,你的索引要更新的。所以想到了自动调度。当然那就想到了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");
    }
}

posted on 2009-03-10 14:19 duduli 阅读(1152) 评论(1)  编辑  收藏 所属分类: java

评论

# re: spring与自动调度任务 2009-03-10 16:56 隔叶黄莺

如果为了 Timer 而用 Spring,那就是大材了。  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
<2009年3月>
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

公告

welcome to my place.

常用链接

留言簿(5)

我参与的团队

随笔分类

随笔档案

新闻分类

石头JAVA摆地摊儿

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜

@duduli