葛万标 李江冰
摘要:随着WEB工程的应用,在使用的过程中会遇到大量的数据或者文件的生成,同时在处理数据或者文件的时候,需要动态的展示处理的结果,这就增加了WEB工程的复杂性和难度.异步处理数据的DWR框架和Quartz定时调度有效的解决了这一问题.本文简要阐述Quartz与DWR的原理以及在WEB工程中的综合应用。
关键词: DWR;Quartz;WEB工程
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)28-6761-03
在WEB工程中,为了提高整个应用的功能性问题,有些工作需要间隔一段时间去执行,并且需要将执行的结果呈现出来,将处理的过程动态的加载,提高工作效率,同时也增加客户的友好性体验,以文件的生成为例,Quartz主要是负责定时调度任务创建文件,DWR框架用来获取处理结果,并给出提示信息.
1 Quartz与DWR的原理
1.1 Quartz作業调度框架
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序.Jobs可以做成标准的Java组件或 EJBs.
Quartz提供了强大任务调度机制, 允许开发人员灵活地定义触发器的调度时间表,并可以对触发器和任务进行关联映射.提供了调度运行环境的持久化机制,可以保存并恢复调度现场,即使系统因故障关闭,任务调度现场数据并不会丢失.
Quartz的几个核心概念:
CronTriggerBean:调度触发器:触发器定义了对作业的调度,一旦被调用就会根据cron表达式里面的设置对作业进行调度.cron表达式包括以下7个字段:秒、分、小时、月内日期、月、周内日期、年(可选字段),主要设置作业运行的时间
MethodInvokingJobDetailFactoryBean:作业工厂.触发的具体的作业执行的方法, 在具体执行待调度任务的method前后加入公用逻辑,比如记录开始、结束日期、判断该task是否由该台服务器执行、任务执行完成之后将运行结果进行持久化或者发email等
SchedulerFactoryBean:调度器.调度器可以包含具体的JobDetail+CronTrigger的组合,其中一个JobDetail可以和多个CronTrigger关联
1.2 DWR框架
DWR是一个便于从JavaScript调用Java函数和从Java调用JavaScript函数远程过程调用协议,它可以允许运行在浏览器中的代码执行WEB服务器上的代码,用JavaScript脚本语言直接调用后台业务商业组件的解决方案,采用无刷新页面的方式从远程服务端获取数据,不仅提高页面的响应时间,而且也不会影响到用户因为刷新页面带来的心理感觉.
DWR采用纯JavaScript在浏览器中实现,并且会根据浏览器类型采用最高的执行效率的远程调用机制,同时WEB开发人员必须配置哪些JAVA类可以安全的被外部使用
2 在WEB工程中的综合应用
2.1配置调度任务
<!—lazy-init设置为false表明容器启动就会自动加载—>
<!—可以定义多个调度触发器—>
<!— 定时生成文件 —>
<!—createFilesActuatorBean为具体的方法—>
<!— 每隔30秒执行一次 创建文件 —>
2.2 DWR配置(导入相应的jar包)
在web.xml里面配置,配置文件如下
<!—初始化参数—>
}}});
}
<%— 启动页面定时任务(创建文件) —%>
function startTaskCreateFile(){
timerTask = setInterval("checkCreateFileStatus()",taskPeriod*1000);
}