你曾经需要应用执行一个任务吗?这个任务每天或每周星期二晚上 11:30,或许仅仅每个月的最后一天执行。一个自动执行
而无须干预的任务在执行过程中如果发生一个严重错误,应用能够知到其执行失败并尝试重新执行吗?你和你的团队是用 java
编程吗?如果这些问题中任何一个你回答是,那么你应该使用 Quartz 调度器。
旁注: Matrix 目前就大量使用到了 Quartz 。比如,排名统计功能的实现,在 Jmatrix 里通过 Quartz 定义了一个定时调度作
业,在每天凌晨一点,作业开始工作,重新统计大家的 Karma 和排名等。
还有, RSS 文件的生成,也是通过 Quartz 定义作业,每隔半个小时生成一次 RSS XML 文件。
所以 Quartz 使用的地方很多,本文无疑是一篇很好的入门和进阶的文章,在此,感谢 David w Johnson 的努力!
Quartz 让作业调度简单
Quartz 是一个完全由 java 编写的开源作业调度框架。不要让作业调度这个术语吓着你。尽管 Quartz 框架整合了许多额外
功能, 但就其简易形式看,你会发现它易用得简直让人受不了! 。简单地创建一个实现 org.quartz.Job 接口的 java 类。 Job 接
口包含唯一的方法:
public void execute(JobExecutionContext context)
throws JobExecutionException;
在你的 Job 接口实现类里面,添加一些逻辑到 execute() 方法。一旦你配置好 Job 实现类并设定好调度时间表, Quartz 将
密切注意剩余时间。当调度程序确定该是通知你的作业的时候, Quartz 框架将调用你 Job 实现类(作业类)上的 execute() 方法
并允许做它该做的事情。无需报告任何东西给调度器或调用任何特定的东西。仅仅执行任务和结束任务即可。如果配置你的作
业在随后再次被调用, Quartz 框架将在恰当的时间再次调用它。
如果你使用了其它流行的开源框架象 struts ,你会对 Quartz 的设计和部件感到舒适。虽然两个开源工程是解决完全不同的
问题,还是有很多相似的之处,就是开源软件用户每天感觉很舒适。 Quartz 能用在单机 J2SE 应用中,作为一个 RMI 服务器,
也可以用在 web 应用中,甚至也可以用在 J2EE 应用服务器中。
Quartz 的发展史
尽管 Quartz 今年开始受到人们注意,但还是暂时流行。 Quartz 由 James House 创建并最初于 2001 年春天被加入
sourceforge 工程。接下来的几年里,有许多新特征和版本出现,但是直到项目迁移到新的站点并成为 OpenSymphony 项目家
族的一员,才开始真正启动并受到应有的关注。
James House 仍然和几个协助他的业余开发者参与大量开发工作。 Quartz 开发团队今年能发布几个新版本,包括当前正处
在候选发布阶段的 1.5 版。
上手 Quartz
Quartz 工程驻留在 OpenSymphony 站点上。在 Quartz 站点上可以找到许多有用的资源: JavaDocs ,包含指南的文档,
CVS 访问,用户和开发者论坛的连接,当然也有下载。
从下载连接取得 Quartz 的发布版本,并且解压到到本地目录。这个下载文件包含了一个预先构建好的 Quartz 二进制文件
评论0