1. 程式人生 > >SpringMVC 自帶Task 實現並行 & 序列

SpringMVC 自帶Task 實現並行 & 序列

與Quarz相比,SpringMVC提供的任務排程相對簡單,通過配置檔案即可實現Job的定時排程,但是任務比較多的話,可能不僅涉及到並行,相關聯的Job還有序列的需求。

可以通過配置多個task:scheduler 實現並行和序列,以應對複雜一些的Job。

 1     <task:scheduler id="schedulerA" pool-size="4" />
 2     <task:scheduled-tasks scheduler="schedulerA">
 3         <task:scheduled ref="jobSchedule1"
method="background" cron="0 0 10,22 * * ?" /> 4 <task:scheduled ref="jobSchedule2" method="background" cron="0 0 2,7,19 * * ?" /> 5 <task:scheduled ref="jobSchedule3" method="background" cron="0 */30 * * * ?" /> 6 <task:scheduled ref="jobSchedule4" method="background"
cron="0 */30 * * * ?" /> 7 </task:scheduled-tasks> 8 9 <task:scheduler id="schedulerB" pool-size="1" /> 10 <task:scheduled-tasks scheduler="schedulerB"> 11 <task:scheduled ref="jobSchedule1" method="background" cron="0 0 8 * * ?" /> 12 <task:scheduled
ref="jobSchedule2" method="background" cron="0 0 8 * * ?" /> 13 <task:scheduled ref="jobSchedule3" method="background" cron="0 */30 * * * ?" /> 14 <task:scheduled ref="jobSchedule4" method="background" cron="0 */30 * * * ?" /> 15 </task:scheduled-tasks>

其中,schedulerA中的4個Job是並行的,schedulerB中的4個Job是序列的,schedulerA整體和schedulerB整體是並行的。