Quartz框架核心概念
Quartz对任务调度进行了高度抽象,提出了3个核心概念,并在org.quartz包中通过接口和类进行了描述。
任务:就是执行的工作内容。Quartz提供Job接口来支持任务定义
触发器:定义触发Job执行的时间触发规则。Quartz提供Trigger类及其子类支持触发器功能,
调度器:Quartz提供了Scheduler接口,将工作任务和触发器绑定,保证任务可以在正确的时间执行
Quartz框架的使用流程
在系统中,对员工张三的工作任务进行提醒,实现每3秒钟进行一次任务提醒,定时器在10秒钟后关闭。
案例流程如下:
1.引入jar包
2.创建实体类
3.创建service
public class RemindService { //创建集合,书写内容 public List<Plan> getPlayToday(){ List<Plan> list=new ArrayList<Plan>(); Plan plan1=new Plan("12月17日", "快回家了!!!"); Plan plan2=new Plan("12月18日", "这是真的!!!"); list.add(plan1); list.add(plan2); return list; } //打印计划的时间与内容 public void plintMessage(){ List<Plan> list=getPlayToday(); for (Plan plan : list) { System.out.println("计划的时间:"+plan.getDate()+"计划的内容:"+plan.getTask()); } } }
4.创建quartz
public class RemindJob implements Job { //植入service private RemindService service = new RemindService(); @Override public void execute(JobExecutionContext arg0) throws JobExecutionException { service.plintMessage(); } public RemindService getService() { return service; } public void setService(RemindService service) { this.service = service; } }
5.测试类:
public class MyQuertzTest { public static void tool() throws Exception{ //创建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(new Date(System.currentTimeMillis())) .build(); //创建调度者工厂 SchedulerFactory sfc = new StdSchedulerFactory(); //创建一个调度者 Scheduler sched=sfc.getScheduler(); //注册并进行调度 sched.scheduleJob(job, trigger); sched.start(); //Thread.sleep(3000); } public static void main(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表达式案例:
Spring3.2.11与Quartz2.2.1整合时内存泄漏问题解决 http://www.linuxidc.com/Linux/2015-06/119042.htm
Spring配置Quartz任务调度框架教程 http://www.linuxidc.com/Linux/2014-11/108907.htm
Quartz深入浅出 http://www.linuxidc.com/Linux/2014-09/107007.htm
Quartz1.6有状态JOB碰到的棘手问题既解决方案 http://www.linuxidc.com/Linux/2014-09/107005.htm
Spring 3整合Quartz 2实现定时任务 http://www.linuxidc.com/Linux/2014-09/107006.htm
Java项目中定时任务之Quartz的应用 http://www.linuxidc.com/Linux/2013-12/94443.htm
Spring 3 调度器示例 —— JDK 定时器和 Quartz 展示 http://www.linuxidc.com/Linux/2013-10/91946.htm
Quartz框架 实现任务调度 http://www.linuxidc.com/Linux/2016-11/136778.htm
Spring Quartz定时任务 http://www.linuxidc.com/Linux/2016-11/137525.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-12/138508.htm