彻底理解Spring的定制任务(1)

发表于:2007-06-11来源:作者:点击数: 标签:
【引自爬虫工作室 的博客】相信做软件的朋友都有这样的经历,我的软件是不是少了点什么东西呢?比如定时任务啊!就拿新闻发布系统来说,如果新闻的数据更新太快,势必涉及一个问题,这些新闻不能由人工的去发布,应该让系统自己发布,这就需要用到定时定制任

【引自爬虫工作室的博客】相信做软件的朋友都有这样的经历,我的软件是不是少了点什么东西呢?比如定时任务啊!就拿新闻发布系统来说,如果新闻的数据更新太快,势必涉及一个问题,这些新闻不能由人工的去发布,应该让系统自己发布,这就需要用到定时定制任务了,以前定制任务无非就是设计一个Thread,并且设置运行时间片,让它到了那个时间执行一次,就ok了,让系统启动的时候启动它,想来也够简单的。不过有了spring,我想这事情就更简单了。

看看spring的配置文件,想来就只有这个配置文件了。

XML代码:

< bean   id = "infoCenterAutoBuildTask"   

class = "com.teesoo.te.net.scheduling.InfoCenterAutoBuildTask" >   

< property   name = "baseService"   ref = "baseService"   />   

< property   name = "htmlCreator"   ref = "htmlCreator"   />   

   



< bean   id = "scheduledTask"   

class = "org.springframework.scheduling.timer.ScheduledTimerTask" >   

   

< property   name = "delay"   value = "10000"   />   

   

< property   name = "period"   value = "1000000"   />   

< property   name = "timerTask"   ref = "infoCenterAutoBuildTask"   /> 

      



< bean   id = "timerFactory"  

class = "org.springframework.scheduling.timer.TimerFactoryBean" >   

< property   name = "scheduledTimerTasks" >   

< list >   

   

< ref   bean = "scheduledTask"   />   

   

   

上面三个配置文件中只有一个配置文件是涉及到您自己的class的,其他的都是spring的类。很简单吧!

我们只需要涉及一个class让他继承java.util.TimerTask;

Java代码:

BaseTask  extends  java.util.TimerTask {   

//用户只需要实现这个方面,把自己的任务放到这里   

public   void  run(){   

}   

}

下面让我们来看看spring的源代码:

Java代码:

/*  

* Copyright 2002-2005 the original author or authors.  

*   

* Licensed under the Apache License, Version 2.0 (the "License");  

* you may not use this file except in compliance with the License.  

* You may obtain a copy of the License at  

*   

*      http://www.apache.org/licenses/LICENSE-2.0  

*   

* Unless required by applicable law or agreed to in writing, software  

* distributed under the License is distributed on an "AS IS" BASIS,  

* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  

* See the License for the specific language governing permissions and  

* limitations under the License.  

*/   



package  org.springframework.scheduling.timer;   



import  java.util.TimerTask;   



/**  

* JavaBean that describes a scheduled TimerTask, consisting of  

* the TimerTask itself (or a Runnable to create a TimerTask for)  

* and a delay plus period. Period needs to be specified;  

* there is no point in a default for it.  

*  

*

The JDK Timer does not offer more sophisticated scheduling

* options such as  cron expressions. Consider using Quartz for  

* such advanced needs.  

*  

*


共4页: 1 [2] [3] [4] 下一页

原文转自:http://www.ltesting.net

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
...