關鍵字: 企業應用 ?
????
?? 相信做軟件的朋友都有這樣的經歷,我的軟件是不是少了點什么東西呢?比如定時任務啊,
??
就拿新聞發布系統來說,如果新聞的數據更新太快,勢必涉及一個問題,這些新聞不能由人工的去發布,應該讓系統自己發布,這就需要用到定時定制任務了,以前
定制任務無非就是設計一個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了。