关键词:
1.Quartz架构图
1.实体层
package cn.happy.entity; //1. public class Plan { //时间 private String date; //任务 private String task; public Plan(String date, String task) { this.date = date; this.task = task; } public Plan() { } @Override public String toString() { return "Plan [date=" + date + ", task=" + task + "]"; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } public String getTask() { return task; } public void setTask(String task) { this.task = task; } }
2.服务层
package cn.happy.service; import java.util.ArrayList; import java.util.List; //2. import cn.happy.entity.Plan; public class RemindService { //0.2用来打印集合中提醒内容的方法 public void printMessage(){ List<Plan> list=getPlasnForToday(); for(Plan plan : list){ //单个的plan System.out.println("计划的时间"+plan.getDate()+"\t计划内容:"+plan.getTask()); } } //创建一个集合,并且方法返回值是一个集合类型 public List<Plan> getPlasnForToday(){ List<Plan> list=new ArrayList<Plan>(); Plan plan1=new Plan("2016年12月17日","月底可以买回家的车票!"); Plan plan2=new Plan("2016年12月19日","webservice"); list.add(plan2); list.add(plan1); return list; } }
3.任务类的定义RemindJob implements Job
package cn.happy.quartz; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import cn.happy.service.RemindService; //让一个普通类变成计划 public class RemindJob implements Job{ //植入service 对象 private RemindService service=new RemindService(); @Override public void execute(JobExecutionContext context)throws JobExecutionException{ service.printMessage(); } public RemindService getService() { return service; } public void setService(RemindService service) { this.service = service; } }
3.在Test类中综合咱们的计划和触发器
调度器≈Job+trigger
package cn.happy.test; import java.util.Date; import org.quartz.CronScheduleBuilder; import org.quartz.JobBuilder; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.SchedulerFactory; import org.quartz.Trigger; import org.quartz.TriggerBuilder; import org.quartz.impl.StdSchedulerFactory; import cn.happy.quartz.RemindJob; public class MyQuertzTest { public static void tool() throws SchedulerException,InterruptedException{ //第一步构建Job JobDetail job=JobBuilder.newJob(RemindJob.class)// .withIdentity("job1","group1")// .build(); //第二步构建Trigger /*Date runTime=DateBuilder.evenMinuteDate(new Date(System.currentTimeMillis())); Trigger trigger=TriggerBuilder.newTrigger().withIdentity("trigger1","group1")// .startAt(runTime).build();//系统当前时间的下一分钟打印一次*/ /*Trigger trigger=TriggerBuilder.newTrigger()// .withIdentity("myTrigger","myTriggerGroup")// .withSchedule(CronScheduleBuilder.cronSchedule("0 01 09 ? * 1#3 2016")).build();*/ /*//在系统时间一分钟后打印一次 Trigger trigger=TriggerBuilder.newTrigger()// .withIdentity(TriggerKey.triggerKey("myTrigger","myTriggerGroup"))// .withSchedule(SimpleScheduleBuilder.simpleSchedule()// .withIntervalInMinutes(1) .repeatForever())// .startAt(new Date(System.currentTimeMillis()+2000))// .build();*/ /*//1.3系统当前时间开始每两秒钟打印一次 Trigger trigger=TriggerBuilder.newTrigger()// .withIdentity(TriggerKey.triggerKey("myTrigger","myTriggerGroup"))// .withSchedule(SimpleScheduleBuilder.simpleSchedule()// .withIntervalInSeconds(2)//2秒出现一次 .repeatForever()// )// .startAt(new Date(System.currentTimeMillis()))// .build();*/ /*Trigger trigger=TriggerBuilder.newTrigger()// .withIdentity(TriggerKey.triggerKey("myTrigger","myTriggerGroup"))// .withSchedule(SimpleScheduleBuilder.simpleSchedule()// .withIntervalInSeconds(2)//2秒出现一次 )// .startAt(new Date(System.currentTimeMillis()+2000))// .build();*/ /*Trigger trigger=TriggerBuilder.newTrigger()// .withIdentity(TriggerKey.triggerKey("myTrigger","myTriggerGroup"))// .withSchedule(SimpleScheduleBuilder.simpleSchedule()// .withIntervalInMilliseconds(2)//两毫秒出现一次 .repeatForever())// .startAt(new Date(System.currentTimeMillis()+2000))// .build();*/ /*//隔5秒打印一次 Trigger trigger=TriggerBuilder.newTrigger()// .withIdentity("myTrigger","myTriggerGroup")// .withSchedule(SimpleScheduleBuilder.simpleSchedule()// .withIntervalInSeconds(5)// .repeatForever()) .startAt(new Date())// .build();*/ //隔5秒打印一次 Trigger trigger=TriggerBuilder.newTrigger()// .withIdentity("myTrigger","myTriggerGroup")// .withSchedule(CronScheduleBuilder.cronSchedule("0 0 10 ? * 6L"))//每月最后一个星期五10:00运行 .startAt(new Date())// .build(); /*Trigger trigger=TriggerBuilder.newTrigger()// .withIdentity(TriggerKey.triggerKey("myTrigger","myTriggerGroup"))// .withSchedule(SimpleScheduleBuilder.simpleSchedule()// .withIntervalInSeconds(2)// )// .startAt(new Date(System.currentTimeMillis()+2000))// .build();//需要放开第三步中注释的两行 运行完毕后服务也停止了*/ //第三步绑定 Job 和 Trigger SchedulerFactory sf=new StdSchedulerFactory(); Scheduler sched=sf.getScheduler(); sched.scheduleJob(job,trigger); sched.start(); //Thread.sleep(3000);//睡眠3秒钟 //sched.shutdown();//停止 } public static void main(String[] args) throws SchedulerException ,InterruptedException{ tool(); System.out.println("aaaaaaaaa"); } }
总结:常用的Cron表达式
quartz学习--quartz基本介绍和cron表达式
... 一.Quartz大致简介 二.Cron表达式 一.Quartz大致简介Quartz是完全由java开发的一个开源的任务日程管理系统?任务日程管理系统换句话说就是:?一个预先确定的日程时间到达时,负责执行任务的一个系... 查看详情
quartz的cron表达式
按顺序依次为 秒(0~59) 分钟(0~59) 小时(0~23) 天(月)(0~31,但是你需要考虑你月的天数)月(0~11) 天(星期)(1~71=SUN或SUN,MON,TUE,WED,THU,FRI,SAT) 7.年份(1970-2099) 其中每个元素可以... 查看详情
quartz框架之cron表达式
目录1、简介2、CronTrigger及cron表达式1、简介Quartz是多功能开源的任务调度库。主要的类有:Scheduler-themainAPIforinteractingwiththescheduler.(与调度器交互的主API类)Job-aninterfacetobeimplementedbycomponentsthatyouwishtohaveexecutedbythescheduler.... 查看详情
Cron Expression (Quartz) 用于每个午夜 12 点运行的程序
...格林威治标准时间午夜12点运行程序的QuartzScheduler中的cron表达式是什么。我以前从未使用过石英,所以我还在学习。是表达式0012**?还是12pm(n 查看详情
cron表达式详解
cron表达式主要是用在Quartz框架中,Quartz是一个完全由java编写的开源作业调度框架,最主要的功能就是调度器(完成定时任务),可以与javaEE或者javaSE应用程序相结合也可以单独使用,能借助关系数据库和JDBC作业存储支持集群,负... 查看详情
Quartz cron 触发器在每天 00 时运行的表达式是啥?
】Quartzcron触发器在每天00时运行的表达式是啥?【英文标题】:WhatistheexpressionforQuartzcrontriggertorunateverydayat00hr?Quartzcron触发器在每天00时运行的表达式是什么?【发布时间】:2012-02-0309:35:40【问题描述】:每天00点运行的批处理作... 查看详情
初识mybatis之入门案例
我也是自学了一下,在idea中基于maven的mybatis的配置。有什么不对的地方,请指正,谢谢。 1.1咋们先来配置测试一下,配置mybatis的图解: 1.2pom.xml需要mybatis的依赖节点,节点如下:1<dependencies>2<dependency>3<groupId&... 查看详情
cron表达式(代码片段)
概述Cron表达式通常用在定时任务中,主要用来设置定时任务的触发时间,如每天一点执行一次等,下面所说的就是Quartz中会使用到Cron表达式。Cron表达式支持7个字段,分别是秒、分、时、日、月、周、年。也就是... 查看详情
定时任务quartz@scheduled注解中的cron表达式详解示例(代码片段)
定时任务的cron表达式Cron表达式对特殊字符的大小写不敏感,对代表星期的缩写英文大小写也不敏感。一.cron表达式的格式秒分时日月星期年(可省略)以空格隔开二.特殊符号详解?该字符只在日期和星期字段中使用,它通常... 查看详情
bos物流项目第十三天(代码片段)
...Quartz概述a.Quartz介绍和下载b.入门案例c.Quartz执行流程d.cron表达式2、在BOS项目中使用Quartz创建定时任务3、在BOS项目中使用JavaMail发送邮件4、HighCharts概述a.HighCharts介绍b.在线演示5、基于HighCharts实现区域分区分布图 1 Quartz概... 查看详情
quartz中的常用组件之间的关系(代码片段)
注意:本文应用了Quartz入门中的入门案例作为基础###1.Job和JobDetail的关系介绍Job:工作任务调度接口,任务类需要实现的接口。该接口中定义了execute方法,类似JDK提供的TimeTask类的run方法。在这里面编写任务执行... 查看详情
quartz中的常用组件之间的关系(代码片段)
注意:本文应用了Quartz入门中的入门案例作为基础###1.Job和JobDetail的关系介绍Job:工作任务调度接口,任务类需要实现的接口。该接口中定义了execute方法,类似JDK提供的TimeTask类的run方法。在这里面编写任务执行... 查看详情
quartz定时基础(代码片段)
...时间2.6SimpleTrigger2.7CronTrigger2.7.1案例:每s执行一次2.7.2Cron表达式 2.8Scheduler:工厂模式2.8.1StdSchedulerFactory2.8.2Scheduler的主要函数2.9quartz.properties文件2.9.1非持久化配置2.9.2持久化配置2.9.3JDBC插入表顺序3.Spring、Quartz整合3.1使用Quartz... 查看详情
quarz入门案例
介绍Quartz框架是一个全功能、开源的任务调度服务,可以集成几乎任何的java应用程序—从小的单片机系统到大型的电子商务系统。Quartz可以执行上千上万的任务调度。 核心概念 Quartz核心的概念:scheduler任务调度... 查看详情
在线cron生成器
什么是cron表达式:cron表达式主要是用在Quartz框架中,Quartz是一个完全由java编写的开源作业调度框架,最主要的功能就是调度器(完成定时任务),可以与javaEE或者javaSE应用程序相结合也可以单独使用,能借助关系数据库和JDBC作业... 查看详情
quartz定时任务触发器启动时设置(代码片段)
需求为了将触发器的Cron表达式放在数据库里,方便维护。所以需要在项目启动时去数据库获取Cron表达式,并配置触发器,添加到调度器里。实现在配置定时任务相关的Bean时,通过设置init方法,实现配置Bean时执行从数据库获取C... 查看详情
java Quartz Scheduler cron 表达式每隔 30 分钟后一刻钟
】javaQuartzSchedulercron表达式每隔30分钟后一刻钟【英文标题】:javaQuartzSchedulercronexpressionforeveryafter30minutesquarterpastthehours【发布时间】:2016-10-0808:34:30【问题描述】:我知道如何通过使用以下cron表达式每30分钟运行一次作业:00/30*... 查看详情
请问quartz的每天2:30至22:30之间每隔十分钟触发的cron表达式为“030/10
-22**?”正确吗?参考技术A030/10-22**?这样貌似是10-22点每个半小时触发一次追问提交有误,是030/102-22**?意思是2点至22点的30分开始的每隔十分钟 查看详情