Spring 中的任务调度
1. 任务调度概述
任务调度本质上是在预定时间到达时执行或通知其他软件组件。在许多企业应用中,任务调度非常重要,常见的应用场景包括:
- 调用批量处理程序来处理自上次执行以来积累的数据,许多金融应用就是这样工作的。
- 定期生成关于应用使用情况和性能的报告。
- 执行定期的应用维护任务,如归档或清理临时数据。
Spring 框架为任务调度提供了支持,它集成了两种调度技术:
- Timers :Java 内置的调度机制,通过 java.util.Timer
类及相关类实现。
- Quartz 调度 :Quartz 是 OpenSymphony 提供的开源解决方案( www.opensymphony.com/quartz )。
2. Timers 与 Quartz 的对比
对比项 | Timers | Quartz |
---|---|---|
复杂度 | 简单、轻量级 | 相对复杂、功能强大 |
持久化任务 | 不支持 | 支持,可在应用重启后保持 |