Quartz 是一个 Java 轻量级开源企业级的作业调度框架,来自 Quartz 开发团队的信息,这是 Quartz 有史以来最大的、最值得兴奋的一个版本。
该版本除了在性能上有所提升外,增加了如下新特性:
- Scheduler.clear() 提供方便用于清除所有任务、触发器和日程的方法
- Scheduler.scheduleJobs(Map<JobDetail, List<Trigger>> triggersAndJobs, boolean replace) 方法可批量增加任务和触发器
- Scheduler.unscheduleJobs(List<TriggerKey> triggerKeys) 方法提供批量取消任务的
- Scheduler.deleteJobs(List<JobKey> jobKeys) ,不用说,这是批量删除任务的
- Scheduler.checkExists(JobKey jobKey) 和 Scheduler.heckExists(TriggerKey triggerKey) 提供用于检测任务关键字的唯一性
- JDBCJobStore now allows one set of tables to be used by multiple distinct scheduler instances
- JDBCJobStore is now capable of storing non-core Trigger
implementations without using BLOB columns, through the use of the new
TriggerPersistenceDelegate interface, which can (optionally) be
implemented by implementers of custom Trigger types.
- JDBCJobStore 包含了 SybaseDelegate 用以提升跟 Sybase 数据库的兼容性
- Cron 表达式支持指定每月的最后一天和最后一周,例如 L-3 为每月的最后三天
- 包含调度信息的 XML 文件增加了用来指定启动时间和间隔时间的方法
- From schema: <xs:element name=”start-time-seconds-in-future” type=”xs:nonNegativeInteger”/>
- XML 文件支持为触发器指定 priority 属性
- QuartzInitializerListener (and QuartzInitializerServlet) 支持新的参数 “wait-on-shutdown”
- 增加核心任务 DirectoryScanJob
- Added ability to add the ServletContext into the SchedulerContext
when using QuartzInitializerListener or QuartzInitializerServlet to
initialize Quartz within a Java EE web application.
另外Quartz 2.0 不再使用 DBCP 做为数据库连接池,而改用了 C3P0。
还有很多,详情请看 What’s New in Quartz 2.0 |