我们在写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(); } }