使用Quartz做定时器

原文链接
http://www.open4j.com/blogview.asp?logID=8
作者:LAODAO

1、到http://www.opensymphony.com/quartz/

下载稳定的版本(我用的是1.4.5版)。
2、解压至任何目录,目录中有简单的教程、例题、核心包及辅助包,请检查你的目录。
3、开始创建任务,一个任务类需实现org.quartz.Job接口;在任务类中定义任务调用方法public void execute(JobExecutionContext context) throws JobExecutionException {},主要代码就在execute方法中写。
4、写好任务后,开始定义任务描述文件,可结合http://www.quartzscheduler.org/ns/ ...eduling_data_1_1.xsd和自带例题进行定义(examples/jobs.xml),建议最好从examples/jobs.xml进行更改;注意任务需要被激活,故一个成功配置的任务会包含任务描述和触发描述,请参考相关文件。
5、Quartz在容器下是通Servlet的初始化进行启动的,故需要在你的web部署描述文件(即web.xml)中进行定义,在web.xml中加入:
[code]
<servlet>
<servlet-name>QuartzInitializer</servlet-name>
<display-name>Quartz Initializer Servlet</display-name>
<servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet> 
[/code]
6、Quartz引擎的需要初始化,它一般通过一个名为quartz.properties的属性文件进行参数定义;文件的具体定义方法在文件里有详细说明。建议从docs\config\example_quartz.properties文件进行更改;要注意是文件中对于任务数据持久化那段的设置,我使用的是基于RAM的存储方式。
7、基本上大功告成,将quartz.properties和jobs.xml复制到WEB-INF/classes目录下;将quartz.jar及其他辅助jar(都在解压文件夹的lib目录下,如果你的容器环境中已包含这些库就无需再增加)到WEB-INF/lib下。
8、启动容器,按照你设定的计划观察是否运行正确。

【备注】
<A target=_blank href="/uploads/attatch/85wa_QuartzDemo.rar">附件</A>

注:Quartz是一个良好的企业级计划框架,非常灵活和强大,但其文档实在缺泛,请使用者注意收集相关文档,特别是其时间点火表达式
发布了37 篇原创文章 · 获赞 35 · 访问量 8万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章