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整体是并行的。

posted @ 2018-12-18 11:53  清风伴浊酒  阅读(1060)  评论(0编辑  收藏  举报