您的位置:首页 > 其它

Quartz学习

2015-09-28 14:03 337 查看
自己在网上了解了Quartz框架,写了个例子
1、Quartz介绍
Quartz 是一个开源的作业调度框架,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。
2、任务调度实现方式比较
Timer:基于开始时间与重复间隔的任务调度(单线程执行)
Scheduler:基于开始时间与重复间隔的任务调度(多线程执行)
Quartz
:实现复杂的任务调度。
3、下载(官网下载最新版本Quartz 2.2.1)
http://www.quartz-scheduler.org/downloads
4、体系结构
Quartz对任务调度的领域问题进行了高度的抽象,提出了调度器、任务和触发器这3个核心的概念,并在org.quartz通过接口和类对重要的这些核心概念进行描述
概念:
scheduler

任务调度器
trigger

触发器,用于定义任务调度时间规则
job
任务,即被调度的任务。作业是能够调度的可执行任务,实现org.quartz.Job接口即可。

一个job 可以被多个 trigger 关联,但是一个 trigger 只能关联一个 job。
5、例子
public classHelloJob implements Job {

@Override

publicvoid execute(JobExecutionContext context) throws JobExecutionException {
//TODO Auto-generated method stub
System.out.println("执行Job时间:"+ new Date());

}
}

import job.HelloJob;

importorg.quartz.DateBuilder;
importorg.quartz.JobBuilder;
importorg.quartz.JobDetail;
importorg.quartz.Scheduler;
importorg.quartz.SchedulerException;
importorg.quartz.SimpleScheduleBuilder;
importorg.quartz.Trigger;
importorg.quartz.TriggerBuilder;
importorg.quartz.TriggerKey;
importorg.quartz.impl.StdSchedulerFactory;

public classSimpleExample {

public void run() throws Exception {

try {

/*通过SchedulerFactory来获取一个调度器;STD:standard标准的意思 */

Scheduler scheduler =StdSchedulerFactory.getDefaultScheduler();

/* 作业、任务 */

JobDetail job =JobBuilder.newJob(HelloJob.class).withIdentity("myJobName","myJobGroup").build();

/* 触发器 */

Trigger trigger =TriggerBuilder.newTrigger()

.withIdentity(TriggerKey.triggerKey("myTrigger","myTriggerGroup"))

.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2).withRepeatCount(10))

.startAt(DateBuilder.futureDate(1, DateBuilder.IntervalUnit.SECOND))

.build();

scheduler.scheduleJob(job,trigger);

scheduler.start();

Thread.sleep(60*1000);

scheduler.shutdown();

} catch (SchedulerException e) {

e.printStackTrace();

}

}

public static void main(String[] args)throws Exception {

SimpleExample example = newSimpleExample();

example.run();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: