学习quartz首先了解三个概念:
调度器:负责调度作业和触发器;
触发器:设置作业执行的时间、参数、条件等;(简单触发器和Cron触发器)
作业:定时任务内容,被执行的程序;
下载必要的jar包,直接去官网下载,将quartz-x.x.x.jar 和core 和/或 optional 文件夹中的 jar 文件放在项目的文件夹或项目的类路径中
开始:边看例题边学习,首先从简单触发器开始……
使用maven的同学请注意版本 1.8.6, 使用2.2.0有些方法没有
<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>1.8.6</version> </dependency>
1、作业通过实现 org.quartz.job
接口,可以使 Java 类变成可执行的。这个类用一条非常简单的输出语句覆盖了execute(JobExecutionContext context)
方法。
import java.util.Date; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; public class SimpleQuartzJob implements Job { public SimpleQuartzJob() { } public void execute(JobExecutionContext context) throws JobExecutionException { System.out.println("In SimpleQuartzJob - executing its JOB at " + new Date() + " by " + context.getTrigger().getName()); } }
2、触发器和调度器
public void task() throws SchedulerException { //通过SchedulerFactory来获取一个调度器 SchedulerFactory schedulerFactory = new StdSchedulerFactory(); Scheduler scheduler = schedulerFactory.getScheduler(); //引进作业程序 JobDetail jobDetail = new JobDetail("jobDetail-s1", "jobDetailGroup-s1", SimpleQuartzJob.class); //new一个触发器 SimpleTrigger simpleTrigger = new SimpleTrigger("simpleTrigger", "triggerGroup-s1"); //设置作业启动时间 long ctime = System.currentTimeMillis(); simpleTrigger.setStartTime(new Date(ctime)); //设置作业执行间隔 simpleTrigger.setRepeatInterval(10000); //设置作业执行次数 simpleTrigger.setRepeatCount(10); //设置作业执行优先级默认为5 //simpleTrigger.setPriority(10); //作业和触发器设置到调度器中 scheduler.scheduleJob(jobDetail, simpleTrigger); //启动调度器 scheduler.start(); }
一个简单的quartz任务就完成了
转自http://www.cnblogs.com/a757956132/p/4552563.html
原文:http://www.cnblogs.com/shanheyongmu/p/5996029.html