下载
官网下载地址:http://www.quartz-scheduler.org/ 下载步骤: 1、点击橘黄色的download连接。
2、点击Direct Download下面的Quartz 2.2.1 full distribution (release notes)
3、点击quartz-2.2.1-distribution.tar.gz进行下载,选择两个中的任何一个即可。
4、Maven项目引入
代码语言:javascript复制<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jobs</artifactId>
<version>2.2.1</version>
</dependency>
example1
此实例为官方文档中提供的第一个实例,针对此实例,通过注解的形式进行一一说明。目前quartz使用版本为2.2.1。 1、定义任务处理类HelloJob实现Job接口
代码语言:javascript复制package com.secbro.job;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import java.util.Date;
/**
* 实现Job接口,定义具体运行的任务
*/
public class HelloJob implements Job{
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
//此处执行的任务就是打印出当前的时间
System.out.println("Hello World! - " new Date());
}
}
2、执行任务的处理类
代码语言:javascript复制package com.secbro.test;
import com.secbro.job.HelloJob;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import java.util.Date;
/**
* 执行任务的客户端
*/
public class SimpleExample {
/**
* 定义构造方法
*/
public SimpleExample() {
}
public void run() throws SchedulerException {
// 日志打印,为方便起见,此出替换为控制台打印
System.out.println("------- Initializing ----------------------");
// 通过SchedulerFactory获取一个调度器实例
StdSchedulerFactory sf = new StdSchedulerFactory();
// 代表一个Quartz的独立运行容器
Scheduler scheduler = sf.getScheduler();
System.out.println("------- Initialization Complete -----------");
// 将返回某一时间点一分钟以后的时间
Date runtime = DateBuilder.evenMinuteDate(new Date());
System.out.println("------- Scheduling Job -------------------");
// 创建一个JobDetail实例,此版本JobDetail已经作为接口(interface)存在,通过JobBuilder创建
JobDetail jobDetail = JobBuilder.newJob(HelloJob.class).withIdentity("job1","group1").build();
// 定义调度规则接口
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1","group1").startAt(runtime).build();
// 添加JobDetail到Scheduler容器中,并且和Trigger进行关联
scheduler.scheduleJob(jobDetail,trigger);
System.out.println(jobDetail.getKey() " will run at: " runtime);
scheduler.start();
System.out.println("------- Started Scheduler -----------------");
System.out.println("------- Waiting 65 seconds... -------------");
try {
Thread.sleep(65000L);
} catch (Exception var8) {
;
}
System.out.println("------- Shutting Down ---------------------");
scheduler.shutdown(true);
System.out.println("------- Shutdown Complete -----------------");
}
public static void main(String[] args) throws Exception {
SimpleExample example = new SimpleExample();
example.run();
}
}
3、执行之后,打印结果如下
代码语言:javascript复制------- Initializing ----------------------
------- Initialization Complete -----------
------- Scheduling Job -------------------
group1.job1 will run at: Fri Jun 12 16:37:00 CST 2015
------- Started Scheduler -----------------
------- Waiting 65 seconds... -------------
Hello World! - Fri Jun 12 16:37:00 CST 2015
------- Shutting Down ---------------------
------- Shutdown Complete -----------------
Process finished with exit code 0
其中一下内容为HelloJob定时任务打印信息。
代码语言:javascript复制Hello World! - Fri Jun 12 16:37:00 CST 2015
至此,Quartz的下载及简单实例已经完成。