前序:      做为企业里的任务调度框架,出现同一时间点同时运行两个任务,或者两个任务因为开始的执行时间和执行时间的长短,很有可能出现任务并发执行的情况:因为Quartz的实现是采用java编程,那么多线程机制就是解决并发问题的必要手段了: 线程与 Quartz 来说尤为重要,因为 Quartz  就是设计为支持同时运行多个 Job.为达到此效果,Quartz 非常倚重于内建于 Java 语言的线程,借助于自己的类和借口还有所增强. 当 Quartz Schduler 首次由某个工厂方法创建时…
背景 第一次遇到定时执行某些任务的需求时,很多朋友可能设计了一个小类库,这个类图提高了一个接口,然后由调度器调度所有注册的接口类型,我就是其中之一,随着接触的开源项目越来越多,我的某些开发习惯受到了影响,其中比较重要的一个是:先查看一下有没有现成的开源项目可以满足需要,如果有,就尽量使用.本文介绍一款任务调度框架:Quartz. Quartz 最好的学习地址:http://www.quartz-scheduler.net/documentation/index.html. Hello World…
前序:      我们已经在前面的内容能里看到了,我们用 Scheduler 来管理我们的 Job:创建并关联触发器以使 Job 能被触发执行:以及如可选择 calendar 为给定的时程安排提供更多的灵活性. 1.Quartz 调度器的介绍      调度器(Scheduler) 是Quartz 框架的心脏,Scheduler也是 Quartz 的主要 API.对于 Quartz 用户来说,多数时候与框架的交互是发生于 Scheduler  之上的.客服端与 Scheduler 交互是通过 o…
前序:     前面我们已经通过编程的方式实现了多个作业任务执行具体操作的演示:但具体到实际的时候,如果我们要在 Job 启动之后改变它的执行时间和频度,则必须去修改源代码重新编译,我们很难去以编程的形式来实现作业任务的注册(注册到任务调度器)和对其的后期维护,为了 便于维护我们将采取配置的形式来实现: 1.quartz.properties     Quartz最重要的配置文件就是quartz.properties:它决定了quartz的运行情况:其中包括了Quartz 应用运行时行为,以及运…
由于目前的工作内容为建行CLPM批处理业务的设计工作,所以很好的理解批处理所用的任务调度框架Quartz势在必行:为了能够更好的去服务于工作,也 为了提升自己,所以我学习了Quartz Job Scheduling Framework 中文版 V0.9.2.chm这一资料,并对其中的学习内容做了一些笔记:        用该书作者的话一样,自己在去用语言表达的过程中,在为了更好的让读者明白的心理作用下,编写者会要求自己对所编写的内容达到非常熟悉的地步,这样可以很 好的迫使自己更好的掌握所学的内容…
1. 一个简单的Quartz 工程     本示例应用比起众所周知的 System.out.println("Hello world from Quartz") 来还是要有趣些.当我们用Quartz 执行一个作业时,总是希望它能为我们执行一些有趣且有意义的任务.因此,接下来我们就要做一些有趣且有用的事情. 本章向您演示如何创建这么一个 Quartz 作业,Quartz 应用通知它要做事情的时候,就会去扫描指定的目录寻找 XML 文件. 假如在指定目录中找到了一个或多个 XML 文件的话…
前序:     在第一个例子我看到了自定义的作业类在任务调度器上注册后,则通过任务调度器来实现启动:下面,我们将同一个作业类执行两个任务,并都将他们注册到任务调度器上!     首先一个job类指向两个任务,则任务性质可能一样,但任务信息存在差异:我们需要创建两个不同属性信息的job类实例:这个创建的动作是由Scheduler来完成:前面我们已经说了,它获取job信息并创建实例的前提操作如下: JobDetail jobDetail = new JobDetail(jobName,Schedul…
1.下载和安装 Quartz 根据资料上提供的网址http://www.opensymphony.com/quartz 我们可以下载到Quartz的最新版本1.6.4: 2.下载后包的说明        在下载后有一个包,以下是各文件目录里存放内容的说明 表 2.1  Quartz 的目录结构和内容         目录名 存放内容 Docs  docs/api                     Quartz 框架的JavaDoc Api 说明文档 docs/dbTables       …
1.Java 中的线程     线程允许程序同一时间做很多任务,至少,看起来那些任务是并发执行的.在我的并发编程的帖子里有介绍线程的基本概念:我们知道在任一特定时刻仅有一个线程 在执行,但是 CPU 给每个线程一小片时间运行(通过时间片)然后来回在线程间快速的切换.这就是我们所看到的多线程运行的样子.这里的cpu指的是单处理器的情况,因为对于 多处理器的话,多线程调度机制将会将各个任务分配到不同处理器上来实现,这样cpu时间片切片的行为就并不频繁,也就大大提升了程序的执行效率了: Java 语言…
前序:      我们已经大概对Quartz的基本有了一个大概的认识:现在我们将要逐渐对Quartz的各个重要组件进行学习:前面已经对job进行了详细讲解,现在我们来认识下它的一个重要兄弟,没有它,作业将无法得到执行的---触发器Trigger: 1.Quartz中的触发器Trigger   Job 包含了要执行任务的逻辑,但是 Job 对何时该执行却一无所知.这个事情留给了 Trigger.Quartz Trigger 继承了抽象的 org.quartz.Trigger 类.当前,Quartz…