关键字: 企业应用
相信做软件的朋友都有这样的经历,我的软件是不是少了点什么东西呢?比如定时任务啊,
就拿新闻发布系统来说,如果新闻的数据更新太快,势必涉及一个问题,这些新闻不能由人工的去发布,应该让系统自己发布,这就需要用到定时定制任务了,以前
定制任务无非就是设计一个Thread,并且设置运行时间片,让它到了那个时间执行一次,就ok了,让系统启动的时候启动它,想来也够简单的。不过有了
spring,我想这事情就更简单了。
看看spring的配置文件,想来就只有这个配置文件了
xml 代码
-
<
bean
id
=
"infoCenterAutoBuildTask"
-
class
=
"com.teesoo.teanet.scheduling.InfoCenterAutoBuildTask"
>
-
<
property
name
=
"baseService"
ref
=
"baseService"
/>
-
<
property
name
=
"htmlCreator"
ref
=
"htmlCreator"
/>
-
</
bean
>
-
-
<
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
>
-
-
-
<
bean
id
=
"timerFactory"
class
=
"org.springframework.scheduling.timer.TimerFactoryBean"
>
-
<
property
name
=
"scheduledTimerTasks"
>
-
<
list
>
-
-
<
ref
bean
=
"scheduledTask"
/>
-
</
list
>
-
</
property
>
-
</
bean
>
上面三个配置文件中只有一个配置文件是涉及到您自己的class的,其他的都是spring的类。很简单吧
我们只需要涉及一个class让他继承java.util.TimerTask;
java 代码
-
BaseTask
extends
java.util.TimerTask {
-
-
public
void
run(){
-
}
-
}
下面让我们来看看 spring的源代码
java 代码
说实话这个类也没什么,只是简单的包装了我们的timertask,里面也就只有几个属性,一个是时间片,一个是任务等。
真正运行我们的任务的类是:
java 代码
这个类就是运行我们任务的类了,我们可以定制N个任务,只需要塞到这里就ok了。