本文阅读量 次
1. Spring Schedule¶
1.1 几种使用行为¶
1.1.1 基本 fixedRate 和 fixedDelay¶
fixedDelay: 以上一次任务结束时间为计时开始,延迟xxx后执行下一次fixedRate: 不考虑任务执行什么时候结束,总是以固定的速率(Rate) 对任务进行调度
1.1.2 fixedRate + 长时间任务¶
- 如果
fixedRate时,任务执行时间超过固定的间隔(Rate),则后继任务的执行会在当前执行结束后立即执行
1.1.3 fixedRate + 长时间任务 + 多任务¶
- Spring Scheduler 默认是单线程实例进行调度,所以任务是顺序执行的
- 如果 Scheduler 配置成多线程的线程池,则不同任务间 (task A 和 task B) 是可以并行的
注意
即使 Scheduler 配置成多线程,但 同一个任务 的 不同实例 间,仍然是顺序执行的
1.1.4 fixedRate + @Async¶
如果想要相同任务的不同实例间也并行触发,可结合 @Async 对任务进行异步化来实现



