随笔分类 -  Quartz

摘要:1.Java 中的线程 线程允许程序同一时间做很多任务,至少,看起来那些任务是并发执行的。在我的并发编程的帖子里有介绍线程的基本概念;我们知道在任一特定时刻仅有一个线程在执行,但是 CPU 给每个线程一小片时间运行(通过时间片)然后来回在线程间快速的切换。这就是我们所看到的多线程运行的样子。这里的cpu指的是单处理器的情况,因为对于多处理器的话,多线程调度机制将会将各个任务分配到不同处理器上来实现,这样cpu时间片切片的行为就并不频繁,也就大大提升了程序的执行效率了; Java 语言使用 Thread 类内建了对线程的支持。当一个线程被通知运行,该线程上的任务对应的 run() 方法就被执行. 阅读全文
posted @ 2013-10-16 17:30 chasewade 阅读(764) 评论(0) 推荐(0)
摘要:前序: 我们已经在前面的内容能里看到了,我们用 Scheduler 来管理我们的 Job;创建并关联触发器以使 Job 能被触发执行;以及如可选择 calendar 为给定的时程安排提供更多的灵活性。1.Quartz 调度器的介绍 调度器(Scheduler) 是Quartz 框架的心脏,Scheduler也是 Quartz 的主要 API。对于 Quartz 用户来说,多数时候与框架的交互是发生于 Scheduler 之上的。客服端与 Scheduler 交互是通过 org.quartz.Scheduler接口的。从Quartz内部来说,我们可以从前面看出,它是任务执行的一个平台,如果光.. 阅读全文
posted @ 2013-10-16 17:29 chasewade 阅读(887) 评论(0) 推荐(0)
摘要:前序: 我们已经大概对Quartz的基本有了一个大概的认识;现在我们将要逐渐对Quartz的各个重要组件进行学习;前面已经对job进行了详细讲解,现在我们来认识下它的一个重要兄弟,没有它,作业将无法得到执行的---触发器Trigger;1.Quartz中的触发器Trigger Job 包含了要执行任务的逻辑,但是 Job 对何时该执行却一无所知。这个事情留给了 Trigger。Quartz Trigger 继承了抽象的 org.quartz.Trigger 类。当前,Quartz 有三个可用的 Trigger:Java代码 ·org.quartz.SimpleTrigger· 阅读全文
posted @ 2013-10-16 17:28 chasewade 阅读(786) 评论(0) 推荐(0)
摘要:前序: 做为企业里的任务调度框架,出现同一时间点同时运行两个任务,或者两个任务因为开始的执行时间和执行时间的长短,很有可能出现任务并发执行的情况;因为Quartz的实现是采用java编程,那么多线程机制就是解决并发问题的必要手段了; 线程与 Quartz 来说尤为重要,因为 Quartz 就是设计为支持同时运行多个 Job。为达到此效果,Quartz 非常倚重于内建于 Java 语言的线程,借助于自己的类和借口还有所增强。 当 Quartz Schduler 首次由某个工厂方法创建时,工厂配置了 Scheduler 会在它的整个生命周期中用到的几个重要的资源。其中一些重要的资源是与线程相关的. 阅读全文
posted @ 2013-10-16 17:27 chasewade 阅读(536) 评论(0) 推荐(0)
摘要:前序: 前面我们已经通过编程的方式实现了多个作业任务执行具体操作的演示;但具体到实际的时候,如果我们要在 Job 启动之后改变它的执行时间和频度,则必须去修改源代码重新编译,我们很难去以编程的形式来实现作业任务的注册(注册到任务调度器)和对其的后期维护,为了便于维护我们将采取配置的形式来实现; 1.quartz.properties Quartz最重要的配置文件就是quartz.properties;它决定了quartz的运行情况;其中包括了Quartz 应用运行时行为,以及运行过程中相关属性;下面我们将大致描述下quartz.properties的相关配置项:1)1)Configure M. 阅读全文
posted @ 2013-10-16 17:22 chasewade 阅读(535) 评论(0) 推荐(0)
摘要:前序: 在第一个例子我看到了自定义的作业类在任务调度器上注册后,则通过任务调度器来实现启动;下面,我们将同一个作业类执行两个任务,并都将他们注册到任务调度器上! 首先一个job类指向两个任务,则任务性质可能一样,但任务信息存在差异;我们需要创建两个不同属性信息的job类实例;这个创建的动作是由Scheduler来完成;前面我们已经说了,它获取job信息并创建实例的前提操作如下:Java代码 JobDetailjobDetail=newJobDetail(jobName,Scheduler.DEFAULT_GROUP,jobClass);jobDetail.getJobDataMap().pu. 阅读全文
posted @ 2013-10-16 17:16 chasewade 阅读(2312) 评论(0) 推荐(0)
摘要:任务调度开源框架Quartz几乎每个项目中都用到了自动任务处理功能。所以在任务调度的功能很常用,但是一个好的任务调度程序是一个颇具挑战性的工作。最近用到Quartz这个框架,感觉很好,所以进行学习。下面的是转载的一份入门的文档。===============================================================概述各种企业应用几乎都会碰到任务调度的需求,就拿论坛来说:每隔半个小时生成精华文章的RSS文件,每天凌晨统计论坛用户的积分排名,每隔30分钟执行锁定用户解锁任务。对于一个典型的MIS系统来说,在每月1号凌晨统计上个月各部门的业务数据生成月报表,每 阅读全文
posted @ 2013-10-16 16:22 chasewade 阅读(494) 评论(0) 推荐(0)
摘要:1. 一个简单的Quartz 工程 本示例应用比起众所周知的 System.out.println("Hello world from Quartz") 来还是要有趣些。当我们用Quartz 执行一个作业时,总是希望它能为我们执行一些有趣且有意义的任务。因此,接下来我们就要做一些有趣且有用的事情。本章向您演示如何创建这么一个 Quartz 作业,Quartz 应用通知它要做事情的时候,就会去扫描指定的目录寻找 XML 文件。假如在指定目录中找到了一个或多个 XML 文件的话,它将会打印出文件的一些概要信息。且这个作业每格10秒执行一次;(时间间隔可以随意设置,这里只是一个演 阅读全文
posted @ 2013-10-16 16:21 chasewade 阅读(609) 评论(0) 推荐(0)
摘要:一、Quartz简介 Quartz是一个开放源码项目,专注于任务调度器,提供了极为广泛的特性如持久化任务,集群和分布式任务等。Spring对Quartz的集成与其对JDK Timer的集成在任务、触发器和调度计划的声明式配置方面等都非常相似。 Quartz的核心由两个接口和两个类组成:Job和Scheduler接口,JobDetail和Trigger类。不同于JDK Timer,任务不是从实现一个Job接口的类实例开始运行,实际上Quartz在需要的时候才创建job类实例。可以使用JobDetail类来包装任务状态,并传递一个信息给Job,或在一个Job的多次执行过程之间保存信息。二、Quar 阅读全文
posted @ 2013-10-16 16:16 chasewade 阅读(647) 评论(0) 推荐(2)
摘要:1.下载和安装 Quartz 根据资料上提供的网址http://www.opensymphony.com/quartz 我们可以下载到Quartz的最新版本1.6.4; 2.下载后包的说明 在下载后有一个包,以下是各文件目录里存放内容的说明 表 2.1 Quartz 的目录结构和内容 目录名 存放内容 Docs docs/api Quartz 框架的JavaDoc Api 说明文档 docs/dbTables 创建 Quartz 的数据库对象的脚本 docs/wikidocs Quartz 的帮助文件,点击 index.html 开始查看 Examples 多方面使用 Quartz 的例子.. 阅读全文
posted @ 2013-10-15 15:56 chasewade 阅读(815) 评论(0) 推荐(0)
摘要:由于目前的工作内容为建行CLPM批处理业务的设计工作,所以很好的理解批处理所用的任务调度框架Quartz势在必行;为了能够更好的去服务于工作,也 为了提升自己,所以我学习了Quartz Job Scheduling Framework 中文版 V0.9.2.chm这一资料,并对其中的学习内容做了一些笔记; 用该书作者的话一样,自己在去用语言表达的过程中,在为了更好的让读者明白的心理作用下,编写者会要求自己对所编写的内容达到非常熟悉的地步,这样可以很好的迫使自己更好的掌握所学的内容,所以我准备发表我的学习笔记,也希望对Quartz有兴趣的朋友一起来进行讨论,共同学习;很多内容都是从资料上截取下来 阅读全文
posted @ 2013-10-15 15:55 chasewade 阅读(476) 评论(0) 推荐(0)