- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Quartz学习笔记
Quartz学习笔记
Quartz特点
1) Quartz能嵌入到任何独立的应用中运行。
2) Quartz能在应用服务器或者 Servlet 容器中实例化,并且能够参与 XA 事务。
3) Quartz能够以独立的方式运行(在它自己的Java虚拟机中),可以通过 RMI使用
Quartz。
4) Quartz可以被实例化为独立程序的集群(有负载均衡和容错能力)。
Quartz功能介绍
任务执行(Job Execution)
任务是任何实现简单 Job 接口的 Java 类,这样开发者能够执行任何完成他们工作
的任务。
任务类的实例可以由 Quartz实例化,也可以由你的程序框架实例化。
当触发器被触发时,日程管理器将会通知某个或者多个实现了JobListener 或
TriggerListener的对象(监听器可以是简单的Java对象,或者 EJBs,或者 JMS 消息发布器,等等)。这些监听器在任务执行完毕后也会接到通知。
任务被完成后,他们会返回一个“任务完成码(JobCompletionCode)”,这个
“任务完成码”告知日程管理器任务执行的结果是成功还是失败。日程管理器会根据成功或者失败码来采取措施,比如:立即重新执行任务
任务持久化(Job Persistence)
Quartz设计中包括了一个JobStore接口,这样,实现这个接口的 Job多种机制实现Job 的存储。
存储在数据库中:通过使用 JDBCJobStore,所有的 Jobs和 Triggers 被配置为“non-volatile”(不
轻快)的方式。即,通过 JDBC 存储在关系数据库中。
存储在RAM中:通过使用 RAMJobStore,所有Jobs和 Triggers 被存储在 RAM。因此,在程序执行中没有被持久化,但这种方式的优点就是不需要外部数据库。
事务(Transactions)
Quartz通过JobStoreCMT(JDBCJobStore的一个子类)可参与 JTA 事务。
Quartz可以管理JTA (工作任务分析Quartz在每次执行Job时,都重新创建一个Job实例,所以它不直接接受一个Job的实例,相反它接收一个Job实现类,以便运行时通过newInstance()的反射机制实例化Job。因此需要通过一个类来描述Job的实现类及其它相关的静态信息,如Job名字、描 述、关联监听器等信息,JobDetail承担了这一角色。通过该类的构造函数可以更具体地了解它的功用:JobDetail(java.lang.String name, java.lang.String group, java.lang.Class jobClass),该构造函数要求指定Job的实现类,以及任务在Scheduler中的组名和Job名称;Trigger:是一个类,描述触发Job执行的时间触发规则。主要有SimpleTrigger和CronTrigger这两个子类。当仅需触 发一次或者以固定时间间隔周期执行,SimpleTrigger是最适合的选择;而CronTrigger则可以通过Cron表达式定义出各种复杂时间规 则的调度方案:如每早晨9:00执行,周一、周三、周五下午5:00执行等
Calendar:org.quartz.Calendar和java.util.Calendar不同,它是一些日历特定时间点的集合(可以简 单地将org.quartz.Calendar看作java.util.Calendar的集合——java.util.Calendar代表一个日历时 间点,无特殊说明后面的Calendar即指org.quartz.Calendar)。一个Trigger可以和多个Calendar关联,以便排除或 包含某些时间点。Scheduler:代表一个Quartz的独立运行容器,Trigger和JobDetail可以注册到Scheduler中,两者在 Scheduler中拥有各自的组及名称,组及名称是Scheduler查找定位容器中某一对象的依据,Trigger的组及名称必须唯 一,JobDetail的组和名称也必须唯一(但可以和Trigger的组和名称相同,因为它们是不同类型的)。Scheduler定义了多个接口方法, 允许外部通过组及名称访问和控制容器中Trigger和JobDetail。Scheduler可以将Trigger绑定到某一JobDetail中,这样当Trigger触发时,对应的Job就被执行。一个Job可以对应 多个Trigger,但一个Trigger只能对应一个Job。可以通过SchedulerFactory创建一个Scheduler实例。 Scheduler拥有一个SchedulerContext,它类似于Ser
您可能关注的文档
- MIS第4章习题课.ppt
- 量子密钥分发系统远程同步问题研究.doc
- MIS练习答案.doc
- MIT博士分析690万条视频大数据告诉你.doc
- mingting脚手架组织设计.doc
- 基于单片机的门禁系统设计79277.doc
- Module7课堂练习.doc
- 量是市场运动的原因.doc
- MIUI小技巧超全总结.docx
- MOTO_DEFY_ME525详细图文刷机教程.doc
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
文档评论(0)