Quartz框架核心概念
Quartz对任务调度进行了高度抽象,提出了3个核心概念,并在org.quartz包中通过接口和类进行了描述。
任务:就是执行的工作内容。Quartz提供Job接口来支持任务定义
触发器:定义触发Job执行的时间触发规则。Quartz提供Trigger类及其子类支持触发器功能,
调度器:Quartz提供了Scheduler接口,将工作任务和触发器绑定,保证任务可以在正确的时间执行
Quartz框架的使用流程
在系统中,对员工张三的工作任务进行提醒,实现每3秒钟进行一次任务提醒,定时器在10秒钟后关闭。
案例流程如下:
1.引入jar包
2.创建实体类
3.创建service
public classRemindService {//创建集合,书写内容
public ListgetPlayToday(){
List list=new ArrayList();
Plan plan1=new Plan("12月17日", "快回家了!!!");
Plan plan2=new Plan("12月18日", "这是真的!!!");
list.add(plan1);
list.add(plan2);returnlist;
}//打印计划的时间与内容
public voidplintMessage(){
List list=getPlayToday();for(Plan plan : list) {
System.out.println("计划的时间:"+plan.getDate()+"计划的内容:"+plan.getTask());
}
}
}
4.创建quartz
public class RemindJob implementsJob {//植入service
private RemindService service = newRemindService();
@Overridepublic void execute(JobExecutionContext arg0) throwsJobExecutionException {
service.plintMessage();
}publicRemindService getService() {returnservice;
}public voidsetService(RemindService service) {this.service =service;
}
}
5.测试类:
public classMyQuertzTest {public static void tool() throwsException{//创建job
JobDetail job = JobBuilder.newJob(RemindJob.class)// .withIdentity("job1", "group1").build();//构建trigger
/*CronTrigger trigger = TriggerBuilder.newTrigger().//
withIdentity("trigger1", "group1").//
withSchedule(CronScheduleBuilder.cronSchedule("0 40 18 ? * 7#3 2016"))
.build();*/Trigger trigger=TriggerBuilder.newTrigger()
.withIdentity("myTrigger", "myTriggerGroup")
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(60)
.repeatForever())
.startAt(newDate(System.currentTimeMillis()))
.build();//创建调度者工厂
SchedulerFactory sfc = newStdSchedulerFactory();//创建一个调度者
Scheduler sched=sfc.getScheduler();//注册并进行调度
sched.scheduleJob(job, trigger);
sched.start();//Thread.sleep(3000);
}public static voidmain(String[] args) {try{
tool();
}catch(Exception e) {
e.printStackTrace();
}
}
}
使用CronTrigger(特定时间,特定操作)
CronTrigger也是Trigger的子类
CronTrigger和SimpleTrigger的对比:
CronTrigger允许用户更精准地控制任务的运行日期和时间,而不仅仅是定义工作的频度
CronTrigger通过Cron表达式定义准确的运行时间点。创建CronTrigger的语法如下:
Cron表达式
要使用CronTrigger,必须掌握Cron表达式
Cron表达式由6~7个由空格分隔的时间元素组成。第7个元素可选
Cron表达式有几个特殊的字符,说明如下:
Cron表达式案例: