- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最新quartz框架介绍
Quartz任务调度框架胡顺强 2013-01-11目录一,概述(Quartz介绍)3二,相关术语3三,Quartz体系结构31,Job42,JobDetail43,Trigger54,Scheduler6四,Quartz作业管理和存储7五,Quartz集群8六,Quartz简单应用(demo详解)10七,Quartz的优势13八,Quartz的缺陷14九,支付系统自动DDN预授权确认应用14十,附录16一,概述(Quartz介绍)Quartz是一个完全由java编写的开源任务调度的框架,通过触发器设置作业定时运行规则,控制作业的运行时间。其中quartz集群通过故障切换和负载平衡的功能,能给调度器带来高可用性和伸缩性。。最新版本:Quartz 2.1.2使用环境:J2EE、J2SE参考资料:用途:定时执行任务,如:定时发邮件,定时发传真,定时发SMS等等定时任务。二,相关术语术语描述集群服务器各节点组合故障切换当一个节点正在执行一个或者多个任务失败的时候。当其出现故障导致任务执行失败的时候,其他的节点会检测到并且标识在失败节点上正在进行的数据库中的任务负载平衡负载平衡是自动完成的,集群的每个节点会尽快触发任务。当一个触发器的触发时间到达时,第一个节点将会获得任务(通过锁定),成为执行任务的节点三,Quartz体系结构Quartz框架主要核心组件包括调度器、触发器、作业。调度器作为作业的总指挥,触发器作为作业的操作者,作业为应用的功能模块。其关系如下图所示:Job为作业的接口,为任务调度的对象;JobDetail用来描述Job的实现类及其它相关的静态信息;Trigger为作业的定时管理工具,一个Trigger只能对应一个作业实例,而一个作业实例可对应多个触发器;Scheduler为定时任务容器,为quartz最上层的东西,它提携了所有触发器和作业,使它们协调工作,每个Scheduler都存有JobDetail和Trigger的注册,一个Scheduler中可以注册多个JobDetail和多个Trigger。1,Job是一个接口,只有一个方法void execute(JobExecutionContext context),被调度的作业(类)需实现该接口中execute()方法,JobExecutionContext类提供了调度上下文的各种信息。每次执行该Job均重新创建一个Job实例,如:public class DDNJob implements Job{public void execute(JobExecutionContext arg0) throws JobExecutionException {// TODO Auto-generated method stubperform();}public void perform(){ //执行报表统计入口函数 //业务逻辑 System.out.println(自动DDN预授权开始执行-------------执行时间:+new Date()); } }注:DDNJob类为需要定时执行的类,execute为定时执行的方法。一个定时任务对应一个Job实现类。2,JobDetailQuartz在每次执行Job时,都重新创建一个Job实例,所以它不直接接受一个Job的实例,相反它接收一个Job实现类,以便运行时通过newInstance()的反射机制实例化Job。因此需要通过一个类来描述Job的实现类及其它相关的静态信息,如Job名字、描述、关联监听器等信息,JobDetail承担了这一角色。JobDetail 用来保存我们作业的详细信息。一个JobDetail可以有多个Trigger,但是一个Trigger只能对应一个JobDetail示例:JobDetail?jobDetail?=?new?JobDetail(myJob,myGroup,DDNJob.class)??说明:?myJob:job?名?myGroup:job?组(为null时,使用缺省的组sched.DEFAULT_GROUP)DDNJob.class:要被执行的Java类。?运用spring集成的MethodInvokingJobDetailFactoryBean时spring能自动生成符合quartz要去的JobDetail。Spring中applicationContext.xml配置如下:!-- detail任务描述 -- bean name=DDNDetail class=mon.autoDDN.MethodInvokingJobDetailFactoryBean property name=targetObject value=DDNJob / property name=conc
文档评论(0)