1 基本信息 摘要:Quartz是一个开源的作业调度框架,它完全由java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,EJB作业预构建,JavaMail及其它,支持cron-like表达式等等。其中集群配置一般比较复杂,那么在Quartz中如何配置它的集群特性呢? 作者:武玉厚 查看本文第二部分:http://gocom.primeton.com/modules/newbb/forumtopic19180_9963_40.htm 2 Quartz的集群配置 Quartz是一个开源的作业调度框架,它完全由java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,EJB作业预构建,JavaMail及其它,支持cron-like表达式等等。其中集群配置一般比较复杂,那么在Quartz中如何配置它的集群特性呢? 2.1 实现集群的基本原理 目前Quartz最新版本是1.6.0。Quartz是通过借助关系数据库和JDBC作业存储来实现集群管理的。
集群通过故障切换和负载平衡的功能,能给调度器带来高可用性和伸缩性。目前集群只能工作在JDBC-Jobstore (JobStoreTX 或者JobStoreCMT)方式下,从本质上来说,是使集群上的每一个节点通过共享同一个数据库来工作的(Quartz通过启动两个维护线程来维护数据库状态实现集群管理,一个是检测节点状态线程,一个是恢复任务线程)。 负载平衡是自动完成的,集群的每个节点会尽快触发任务。当一个触发器的触发时间到达时,第一个节点将会获得任务(通过锁定),成为执行任务的节点。 故障切换的发生是在当一个节点正在执行一个或者多个任务失败的时候。当一个节点失败了,其他的节点会检测到并且标识在失败节点上正在进行的数据库中的任务。任何被标记为可恢复(任务详细信息的"requests recovery"属性)的任务都会被其他的节点重新执行。没有标记可恢复的任务只会被释放出来,将会在下次相关触发器触发时执行。 2. 集群管理用到的表 --任务详细信息表
--触发器与任务关联表
--调度器状态表
2.2 集群配置 通过设置"org.quartz.jobStore.isClustered"属性为"true"来激活集群特性。在集群中的每一个实例都必须有一个唯一的"instance id" ("org.quartz.scheduler.instanceId" 属性), 但是应该有相同的"scheduler instance name" ("org.quartz.scheduler.instanceName"),也就是说集群中的每一个实例都必须使用相同的quartz.properties 配置文件。除了以下几种例外,配置文件的内容其他都必须相同: 不同的线程池大小, 3 附录 3.1 Quartz配置文件说明 3.1.1 Quartz配置文件基本说明 文件名称:默认文件名称quartz.properties,可以通过更改系统属性“org.quartz.properties”来加载自定义的配置。 3.1.2 Quartz配置文件详细说明 3.1.2.1 Scheduler主要属性的配置
下面是具体说明: 3.1.2.2 线程池(ThreadPool)的配置 下面是具体说明:
查看本文第二部分:http://gocom.primeton.com/modules/newbb/forumtopic19180_9963_40.htm |
2007/12/19 10:08
|
基本信息 摘要:Quartz是一个开源的作业调度框架,它完全由java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,EJB作业预构建,JavaMail及其它,支持cron-like表达式等等。其中集群配置一般比较复杂,那么在Quartz中如何配置它的集群特性呢? 作者:武玉厚 查看本文第一部分:http://gocom.primeton.com/modules/newbb/forumtopic19180_9937_40.htm 3.1.2.3 任务存储(JobStore)的配置
3.1.2.4 数据源的配置
3.1.2.5 Scheduler插件的配置
配置插件的简单示例:
3.1.3 示例
查看本文第一部分:http://gocom.primeton.com/modules/newbb/forumtopic19180_9937_40.htm |
2007/12/21 10:47
|