Quartz学习笔记

Quartz学习笔记

ID:37894245

大小:86.50 KB

页数:6页

时间:2019-06-02

Quartz学习笔记_第1页
Quartz学习笔记_第2页
Quartz学习笔记_第3页
Quartz学习笔记_第4页
Quartz学习笔记_第5页
资源描述:

《Quartz学习笔记》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Quartz学习笔记Quartz特点1)Quartz能嵌入到任何独立的应用中运行。2)Quartz能在应用服务器或者Servlet容器中实例化,并且能够参与XA事务。3)Quartz能够以独立的方式运行(在它自己的Java虚拟机中),可以通过RMI使用Quartz。4)Quartz可以被实例化为独立程序的集群(有负载均衡和容错能力)。Quartz功能介绍任务执行(JobExecution)1)任务是任何实现简单Job接口的Java类,这样开发者能够执行任何完成他们工作的任务。2)任务类的实例可以由Quartz实例化,也可以由你的程序框架实例化。当触发器被触发时,日程管理器将会通知某个或

2、者多个实现了JobListener或TriggerListener的对象(监听器可以是简单的Java对象,或者EJBs,或者JMS消息发布器,等等)。这些监听器在任务执行完毕后也会接到通知。3)任务被完成后,他们会返回一个“任务完成码(JobCompletionCode)”,这个“任务完成码”告知日程管理器任务执行的结果是成功还是失败。日程管理器会根据成功或者失败码来采取措施,比如:立即重新执行任务任务持久化(JobPersistence)1)Quartz设计中包括了一个JobStore接口,这样,实现这个接口的Job多种机制实现Job的存储。2)存储在数据库中:通过使用JDBCJob

3、Store,所有的Jobs和Triggers被配置为“non-volatile”(不轻快)的方式。即,通过JDBC存储在关系数据库中。3)存储在RAM中:通过使用RAMJobStore,所有Jobs和Triggers被存储在RAM。因此,在程序执行中没有被持久化,但这种方式的优点就是不需要外部数据库。事务(Transactions)1)Quartz通过JobStoreCMT(JDBCJobStore的一个子类)可参与JTA事务。2)Quartz可以管理JTA(工作任务分析)事务(开始或者提交事务)。集群(Clustering)1)Fail-over.(容错)2)Loadbalancin

4、g.(负载均衡)监听器及插件(Listeners&Plug-Ins)1)应用可以通过实现一个或者多个监听器接口来实现捕捉日程事件,以监视或控制任务/触发器的行为。2)可以通过插件的机制来扩展Quartz的功能。例如:记录任务执行历史的日志,或者从文件中载入任务和触发器的定义。3)Quartz自带了一些“factorybuilt(内建)”的插件和监听器。什么是QuartzQuartz是一个任务日程管理系统,这个系统可以与任何其他软件系统集成或者一起用。“任务进度管理器”就是一个在预先确定(被纳入日程)的时间到达时,负责执行(或者通知)其他软件组件的系统。Quartz相当“轻量”,并且需要

5、非常少的步骤/配置,如果需求比较基本,Quartz确实非常容易使用。Quartz具有容错性,并且可以在你系统重起的时候持久化(记住)被纳入日程的任务。Quartz用一个小Java库发布文件(.jar文件),这个库文件包含了所有Quartz核心功能。这些功能的主要接口(API)是Scheduler接口。它提供了简单的操作,例如:将任务纳入日程或者从日程中取消,开始/停止/暂停日程进度。如果你想将软件组件的执行纳入到日程中,它们只需简单地实现Job接口,这个接口有一个execute()方法。如果希望在日程安排的时间到达时通知组件,那么这些组件应实现TriggerListener或者JobL

6、istener接口。Quartz主过程可以在应用中启动或者运行,也可以作为一个独立的应用(带有RMI<远程服务接口>接口),或者在一个J2EE应用服务器中运行,并且可作为其它J2EE组件的一种引用资源。Quartz与java.util.Timer(JDK1.3起)的区别1.Java定时器没有持久化机制。2.Java定时器的日程管理不够灵活(只能设置开始时间、重复的间隔,设置特定的日期、时间等)3.Java定时器没有使用线程池(每个Java定时器使用一个线程)4.Java定时器没有切实的管理方案,你不得不自己完成存储、组织、恢复任务的措施。夏令时和触发器SimpleTrigger总是每隔

7、若干毫秒触发,而同夏令时没有关系。CronTrigger总是在给定的时间触发,然后计算它下次触发的时间。开始使用QuartzJob:接口:只有一个方法:oidexecute(JobExecutionContextcontext)。JobDetail:Quartz在每次执行Job时,都重新创建一个Job实例,所以它不直接接受一个Job的实例,相反它接收一个Job实现类,以便运行时通过newInstance()的反射机制实例化Job。因此需要通过一

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。