由本人翻译并制作的《Quartz Job Scheduling Framework 中文版》CHM 文件更新为 V0.9.0 版,上一版本是 V0.8.2。
更新的特性有以下三点:
1. 在原来版本的基础上加上了全文检索功能,方便于快速查找某个参考配置和定位到所关心的内容
2. 去除了多余的索引标签,因为它和目录标签的内容就是雷同的
3. 加上了书签页,方便阅读时记录下所关注的主题 阅读全文 >>
由本人翻译并制作的《Quartz Job Scheduling Framework 中文版》CHM 文件更新为 V0.9.0 版,上一版本是 V0.8.2。
更新的特性有以下三点:
1. 在原来版本的基础上加上了全文检索功能,方便于快速查找某个参考配置和定位到所关心的内容
2. 去除了多余的索引标签,因为它和目录标签的内容就是雷同的
3. 加上了书签页,方便阅读时记录下所关注的主题 阅读全文 >>
|  | Quartz Job Scheduling Framework 中 文 版 Chuck Cavaness 著 Unmi(隔叶黄莺) 译 译者博客:http://unmi.cc/ | 
写在最前面的
 
 以此篇权当译者序。再次翻看一下我的博客,最早的那篇《Quartz Job Scheduling Framwork》翻译是在 2007-10-17 02:17 ,距离今日那是一个造人的时间,足见这个翻译过程有多难产。一方面是源于语言水平,再者其间也发生了许多事情。
Quartz 是什么,大概不需多加说明,简单讲就是一个纯 Java 实现的作业调度工具,相当于数据库中的 Job、Windows 的计划任务、Unix/Linux 下的 Cron,但 Quartz 可以把排程控制的更精细。也许大多数人听说 Quartz 是在学习或使用 Spring 的时候,也就是 Spring 整合了 Quartz。而我也不例外,同样是在春天里得悉了这块石英。 阅读全文 >>
四. 创建一个工作流 Job
最后,我们需要介绍启动工作流的 Quartz Job 。当 Scheduler 调用了它,Quartz Job 就查找工作流的名字,并启动、运行相应的工作流。如果没有在 JobDataMap 中配置工作流的名字,Job 就会直接退出。
代码 14.13 显示了 WorkflowJob. 阅读全文 >>
四. Quartz 与 OSWorkflow 的集成
OSWorkflow 与 Quartz 集成的第一步是要改变关于 Job 的思维方式。当把 OSWorkflow 引入到你的 Quartz 应用时你需要以完全不同的方式来思考。那也不是说你当前的想法就是糟糕的或不正确的,只是与 Quartz 一同用工作流强迫你生发一些关于是什么组成 Job 的新的思维。你过去概念中的 Job 现成变成了一个 OSWorkflow 函数。你可以认为是你原有 Job 实质上存在的逻辑作为工作流中的步骤。你仍然需要使用 Quartz 的 Job,但是,当与 Quartz 框架集成工作流时,一个 Quartz Job 将用来初始化工作流。在工作流运行时,这个 Job 将会等待它直至结束。
在本章前面部分,当我们谈到串联 Job 时,每个 Job 代表了一个独立的任务。Jox X 执行后并完成一个任务,接着通知 Job Y 去执行一个有点关联却是独立的任务。在这两个任务间必须有一些依赖关系,否则你不能把它们链接在一起。 阅读全文 >>
三. OSWorkflow 快速入门
像 Quartz 一样,OSWorkflow 是一个完全由 Java 构建的开源项目,而且也是 OpenSymphony 家族项目的成员。还有许多的工作流项目,商业的或是开源的。OSworkflow 在设计上与 Quartz 有很多相似性,所以把这两个框架进行集成不用太费我们的心思。
OSWorkflow 工作在有限状态机的原则之上。一个工作流由一系列状态组成,包括一个开始状态和一个或多个结束状态。从某一状态迁移到另一状态,需要发生一次转换。实际上从某一特定状态可能会有多种转换,你也可以在同一时间从某一状态发生多种转换。选择什么转换依赖于环境,对状态的输入,和一些我们将在后面讨论的条件信息。 阅读全文 >>
第十四章. 工作流中使用 Quartz
Quartz 可以执行一个难以置信的 Job,来完成预计的任务。不幸的是,用来运行一个业务的 Job 经常比单一的 Job 或任务要稍稍复杂。每年百万计的美金花费到理解、设计和构建组织的业务流程。Quartz 框架包含一些设施用于把多个 Job 链接起来构建一个简单的业务流程模型 。本章讨论你能如何用 Quartz 连接 Job。为获得实际的工作流可操作性,你还需要一些来自于 Quartz 框架的东西。本章就来看为实现你的 Job 所构成的工作流可以如何扩展 Quartz 框架。
一. 什么是工作流
Web 上聚集了个人或团体关于工作流的定义和实例。有人定义工作流为“自动化的后台管理系统”。另一些人使用“业务流程建模” 一语,并收取许多的咨询费用向你解释这个概念。对于本章的要义,我们使用如下的工作流定义: 阅读全文 >>
四. 运行 Quartz 集群节点
在启动集群中的 Quartz 应用真的没什么差别。每个实例(或节点) 必须单独启动。启动时,实例连接到数据库,获取 Scheduler 信息,并开始部署 Job。
因为 Quartz 使用了一个随机的负载均衡算法,你将会看到 Job 以随机的行方式由不同的实例执行。没有固定的模式或预告定义的节点来执行特定的 Job。
下一节会讨论一些在处理集群环境中的 Quartz 较常见的问题和任务。
五. Quartz 集群 Cookbook
本节旨在为开发者便于解决 Quartz 集群的具体问题而提供了资源。 阅读全文 >>
三. 配置 Quartz 使用集群
为 Quartz 配置集群环境的步骤比设置类似的 J2EE 集群环境容易的多:
1. 配置每个节点的 quartz.properties 文件。
2. 配置 JDBC JobStore。
3. 使用 Scheduler 信息(Job 和 Trigger) 装载数据库。
4. 启动每个 Quartz 节点。 阅读全文 >>
二. Quartz 中集群是如何工作的
一个 Quartz 集群中的每个节点是一个独立的 Quartz 应用,它又管理着其他的节点。意思是你必须对每个节点分别启动或停止。不像许多应用服务器的集群,独立的 Quartz 节点并不与另一其的节点或是管理节点通信。(将来的 Quartz 版本将会设计成让节点能与其他节点直接通信,而不是借助于数据库。) 取而代之的是,Quartz 应用是通过数据库表来感知到另一应用的。
| Quartz 集群仅能使用 JDBC JobStore 工作因为集群中节点依赖于数据库来传播 Scheduler 实例的状态,你只能在使用 JDBC JobStore 时应用 Quartz 集群。这意味着你必须使用 JobStoreTX 或是 JobStoreCMT 作为 Job 存储;你不能在集群中使用 RAMJobStore 的。在将来的释放版中非常可能移除这个需求,节点也将能直接与另一节点直接通过网络协议,可能使用 JGroup 进行通信。 | 
图 11.1 显示了每个节点直接与数据库通信,若离开数据库将对其他节点一无所知 阅读全文 >>
第十一章. Quartz 集群
不可避免的,我们还是要说到集群。虽然单个 Quartz 实例能给予你很好的 Job 调度能力,但它不能令典型的企业需求,如可伸缩性、高可靠性满足。假如你需要故障转移的能力并能运行日益增多的 Job,Quartz 集群势必成为你方言的一部分了。本章就告诉你如何使用 Quartz 的集群能力来更好的支持你的业务需求,并且即使是其中一台机器在最糟的时间崩溃了也能确保所有的 Job 得到执行。
一. 集群对 Quartz 来说意味着什么?
集群扮演着运行一个组件或应用的多个实例,它们以透明的方式提供服务。集群是企业范畴的事物,而不局限于 Java 的世界里。当部署 J2EE 应用时,例如,供应商为应用服务器提供了集群的能力,以便于像 EJB、JNDI 和 Web 组件能获得高可用性。然当客户端请求这些服务时候,它们就能更可靠的提供服务。 阅读全文 >>