概述:
Quartzs OpenSymphony 开源组织在 Job scheduling 领域有一个开源项目, 它开源与将 J2EE 与将 J2SE 应用程序相结合也可以单独使用. Quartz 开源用来创建简单或为运行是个, 百个, 甚至好几万个 jobs 这样复杂的程序. jobs 可以做成标准的 Java 组件或 EJBs.Quartz 的最新版本为 Quartz2.2.1.
调度简单:
quartz 是一个完全由 java 编写的开源作业调度框架. 用法及其简单: 简单地创建一个实现 org.quartz.Job 接口的 java 类. Job 接口包含唯一的方法:
public void excute(JobExecutionContext context) throws JobException{}
在你的 Job 接口实现类里面, 添加一些逻辑到 execute()方法. 一旦你设置好 Job 实现类并设定好调度时间表, quartz 将密切注意剩余时间. 当调度程序确定该是通知你的时候, quartz 框架将调用你 Job 实现类 (作业类) 上的 execute()方法并允许做它该做的事情. 无需报告任何东西给调度器或调用任何特定的东西. 仅仅执行任务好结束任务即可. 如果配置你的作业在随后再次被调用, quartz 框架将在适当的时间再次调用它.
内部架构:
规模: 大约 300 个 java 类和接口, 并被组织到 12 个包中(Apache Struts 把大约 325 个类和接口组织到 11 个包中).
调度器:
Quartz 框架的核心是调度器. 调度器负责管理 quartz 应用运行时环境. 调度器不是靠自己做所有工作, 而是依赖框架内一些非常重要的部件. quartz 不仅仅是线程和线程管理. 为确保可伸缩性, quartz 采用了基于多线程的架构. 启动时, 架构初始化一套 worker 线程, 这套线程被调度器用来执行预定的作业. 这就是 quartz 怎样能并发运行多个作业的原理. quartz 依赖一套松耦合的线程池管理部件来管理线程环境.
框架特征:
quartz 框架有一个丰富的特征集.
一, 监听器和插件
监听是你所创建的 java 类, 当关键事件发生时会受到框架的回调. 例如: 当一个作业被调度, 没有调度或触发器终止和不再打火时, 可以通过设置来通知你的监听器. quartz 框架包含了调度器监听, 作业和触发器监听. 你可以配置作业和触发器监听为全局监听或者是特定于作业和触发器的监听.
一旦你的一个具体监听被调用, 你就能使用这个技术来做一些你想要在监听类里面做的事情. 例如: 你如果想要在每次作业完成时发送一个电子邮件, 你可以将这个逻辑写进作业里面, 也可以写进 JobListener 里面. 写进 JobListener 的方式强制使用松耦合有利于设计上做得更好.
quartz 插件是一个新的功能特性, 无须修改 quartz 源码便可被创建和添加进 quartz 框架. 它为想要扩展 quartz 框架有没有时间提交改变给 quartz 开发团队和等待新版本的开发人员而设计.
二, 集群 quartz 应用:
quartz 应用能被集群, 是水平句群还是垂直集群取决于你自己的需要. 集群提供以下好处:
1伸缩性
2高可用性
3负载均衡
quartz 可以借助关系数据库和 jdbc 作业存储支持集群.
Terracotta 扩展 quartz 提供集群功能而不需要数据库支持.
(Terracotta 是一款由美国 Terracotta 公司开发的著名开源 java 集群平台. 它在 JVM 与 Java 应用之间实现了一个专门处理集群功能的抽象层, 以其特有的增量检测, 智能定向传送, 分布式协作, 服务器镜像, 分片等技术, 允许用户在不改变现有系统代码的情况下实现单机 Java 应用向集群化应用的无缝迁移. 使得用户可以专注于商业逻辑的开发, 由 Terracotta 负责实现高性能, 高可用性, 高稳定性的企业级 Java 集群.
Terracotta 公司在 2009 年收购了著名的 Java 开源缓存项目 Ehcache 以及 java 任务调度项目 quartz. 经过对该项目的深度整合, Terracotta 推出了易用性更高的分布式缓存, 分布式任务调度以及分布式 web Session 等快捷解决方案, 进一步方便了开发人员开发分布式 Java 应用.)
来源: http://www.bubuko.com/infodetail-2973156.html