Quartz使用指南(一)-----Quartz简介

   <!--[endif]-->什么是Quartz

Quartz是一个作业调度系统(a job scheduling system),Quartz不但可以集成到其他的软件系统中,而且也可以独立运行的;在本文中“job scheduler”的意思是:一个负责在约定的时间到达时执行(或通知)其他软件控件的方法。

Quartz是非常灵活的,为了实现我们的需求Quartz包含了许多可以独立或被集成使用的典型范例,同时使我们编写项目中的代码也觉得很简单自然(natural)。

Quartz是很轻量级的,只需要简单的安装或配置就可以在项目中使用;如果只是相对简单的使用实际上可以直接地使用(out-of-the-box)。

Quartz具有容错性,能够持久化所调度的作业,即在系统重启后也可以继续执行原先未完成的作业。

虽然Quartz对给定的计划可以简单地运行一些系统的处理是很适用的,但只有当我们学习如何使用Quartz去驱动我们的应用业务处理流程时,才能真正的认识到Quartz的全部潜能。

      <!--[endif]-->什么是Quartz-从软件控件的角度

Quartz是以.jar文件的形式发布的,Quartz java库中包含了Quartz所有的核心功能,该功能的主要接口(API)是Scheduler接口,Scheduler接口提供了一些简单的操作,如:schedulering/unscheduling jobsstarting/stopping/pausing the scheduler

如果我们要调度自定义的作业,该作业必须实现Job接口,Job接口包含了一个必须实现的方法:execute(…);如果我们需要实现当到达被调度的时间能够得到通知,我们必须实现TriggerListenerJobListener接口。

Quartz主要程序不但能够作为独立的应用(带有RMI 接口)运行,也可以作为J2EE组件资源在J2EE应用服务器运行。

 <!--[endif]-->使用Quartz

使用Scheduler前必须实例化Scheduler,需要由SchedulerFactory类来创建SchedulerFactory的实例可以通过在JNDI存储中的Factory的序列化的方式来获取,实例化Factory后直接使用该实例也是很容易的,如下面的例子。

Scheduler被实例化后就可以启动、暂停或关闭,但是Scheduler一旦关闭就不能再次启动该Scheduler,只有必须再次实例化后才可以;Trigger只有与之对应的Scheduler启动后才能触发与之相关的Job,否则一直处于暂停状态。

下面是一个实例化、启动Scheduler和调度执行作业的例子:

//创建一个SchedulerFactory类的实例
SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory();
//创建一个Scheduler类的实例
  Scheduler sched = schedFact.getScheduler();
//启动上面创建的Scheduler
  sched.start();
//创建一个JobDetail
  JobDetail jobDetail = new JobDetail("myJob",
                                      sched.DEFAULT_GROUP,
                                      DumbJob.class);
//创建一个SimpleTrigger
  SimpleTrigger trigger = new SimpleTrigger("myTrigger",
                                            sched.DEFAULT_GROUP,
                                            new Date(),
                                            null,
                                            0,
                                            0L);
//JobDetailSimpleTrigger所创建的各自实例关联到一个Scheduler
  sched.scheduleJob(jobDetail, trigger);
<!--EndFragment-->



猜你喜欢

转载自it586.iteye.com/blog/1701775