配置环境:
1. 下载Quartz
2. 阅读Readme.txt,了解每个jar包的作用,将quartz.jar包和lib/下的几个jar包、以及相关依赖的jar包放在工程的classpath中
先来看一个简单的Quartz应用,让它每隔5s打印"Hello, Quartz",打印10次。
代码清单1:创建任务
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class HelloQuartzJob implements Job {
public void execute(JobExecutionContext context)
throws JobExecutionException {
System.out.println( "Hello, Quartz! - executing its JOB at " +
new Date() + " by " + context.getTrigger().getName());
}
}
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class HelloQuartzJob implements Job {
public void execute(JobExecutionContext context)
throws JobExecutionException {
System.out.println( "Hello, Quartz! - executing its JOB at " +
new Date() + " by " + context.getTrigger().getName());
}
}
为了调度此任务执行,需要先得到一个Schedule实例,然后创建一个包含任务信息的JobDetail,最后创建一个Trigger管理任务的执行。
代码清单2:调度任务
import java.sql.Date;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleTrigger;
import org.quartz.impl.StdSchedulerFactory;
public class HelloQuartzScheduling {
public static void main(String[] args) throws SchedulerException {
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
JobDetail jobDetail = new JobDetail( "helloQuartzJob",
Scheduler.DEFAULT_GROUP, HelloQuartzJob. class);
SimpleTrigger simpleTrigger = new SimpleTrigger( "simpleTrigger",
Scheduler.DEFAULT_GROUP);
simpleTrigger.setStartTime( new Date(System.currentTimeMillis()));
simpleTrigger.setRepeatInterval( 5000);
simpleTrigger.setRepeatCount( 10);
scheduler.scheduleJob(jobDetail, simpleTrigger);
scheduler.start();
}
}
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleTrigger;
import org.quartz.impl.StdSchedulerFactory;
public class HelloQuartzScheduling {
public static void main(String[] args) throws SchedulerException {
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
JobDetail jobDetail = new JobDetail( "helloQuartzJob",
Scheduler.DEFAULT_GROUP, HelloQuartzJob. class);
SimpleTrigger simpleTrigger = new SimpleTrigger( "simpleTrigger",
Scheduler.DEFAULT_GROUP);
simpleTrigger.setStartTime( new Date(System.currentTimeMillis()));
simpleTrigger.setRepeatInterval( 5000);
simpleTrigger.setRepeatCount( 10);
scheduler.scheduleJob(jobDetail, simpleTrigger);
scheduler.start();
}
}