Quartz达成任务调度
发布时间:2021-11-18 12:01:31 所属栏目:教程 来源:互联网
导读:Quartz框架核心概念 Quartz对任务调度进行了高度抽象,提出了3个核心概念,并在org.quartz包中通过接口和类进行了描述。 任务:就是执行的工作内容。Quartz提供Job接口来支持任务定义 触发器:定义触发Job执行的时间触发规则。Quartz提供Trigger类及其子类支
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个元素可选 ![]() (编辑:开发网_开封站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |