我们在写Java程序中经常会写一些定时执行的任务,例如每天执行一次什么方法,几分钟或者几个小时调用一次存储过程等等
Quartz的三个核心概念:
任务:执行工作的内容,Quartz提供job接口来支持任务定义
触发器:定义触发job执行的事件触发规则,Quartz提供Trigger类及其子类支持触发功能
调度器:Quartz提供Scheduler接口,将工作任务和触发器绑定,保证任务可以在正确的时间执行
创建任务:
public class myJob implements Job {
public void execute(JobExecutionContext context)
throws JobExecutionException {
System.out.println("this is a QuartzJob"+
new Date() + " by " + context.getTrigger().getName());
}
}
调度任务:为了调度此任务执行,需要先得到一个Schedule实例,然后创建一个包含任务信息的JobDetail,最后创建一个Trigger管理任务的执行。
public class Scheduling {
public static void main(String[] args)throws SchedulerException {
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
//定义一个JobDetail,任务名,任务组,任务执行类
JobDetail jobDetail = new JobDetail("myJob",
Scheduler.DEFAULT_GROUP, myJob.class);
//定义一个Trigger,触发器名,触发器组
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();
}
}