2.初识CronTrigger
2018-07-16 02:39:12来源:博客园 阅读 ()
开发工具:Eclipse
代码下载链接:https://github.com/theIndoorTrain/QuartzDemo.git
前言:
在1.初始Quartz里面,我们介绍了quartz的一种简单使用,就是精确的时间去控制任务的调度,
例如,多久后执行任务,多久后结束之类的。
这种模式并不能体现Quartz的强大,
比如,我想实现:
在每周一早上8:00给女朋友发条问候信息、在她的生日那天0:00发一条祝福短信......
quartz可以帮我们做到这些。
cron表达式:
quartz实现了对cron表达式的支持,那么整个任务调度就可以基于日历、日期去操作执行,而不是简单的用时间刻度去控制。
这样,会更加灵活。
这里将不再讲解cron表达式,有兴趣的可以来到这里学习Cron表达式:
3.初始Cron表达式
任务一:
每天10:43:30执行一次:
1.定义CronHelloScheduler:
Cron表达式:"30 43 10 * * ?"
1 package com.xm.scheduler; 2 3 import java.text.SimpleDateFormat; 4 import java.util.Date; 5 6 import org.quartz.CronScheduleBuilder; 7 import org.quartz.CronTrigger; 8 import org.quartz.JobBuilder; 9 import org.quartz.JobDetail; 10 import org.quartz.Scheduler; 11 import org.quartz.SchedulerException; 12 import org.quartz.SchedulerFactory; 13 import org.quartz.SimpleScheduleBuilder; 14 import org.quartz.Trigger; 15 import org.quartz.TriggerBuilder; 16 import org.quartz.impl.StdSchedulerFactory; 17 18 import com.xm.job.HelloJob; 19 20 public class CronHelloScheduler { 21 22 public static void main(String[] args) throws SchedulerException { 23 /** 24 * 1.定义一个JobDetail 25 *2.绑定 HelloJob 26 *3.定义id,group 27 */ 28 JobDetail jobDetail = JobBuilder 29 .newJob(HelloJob.class) 30 .withIdentity("job1", "group1") 31 .build(); 32 33 /** 34 * 1.获取系统时间 35 * 2.定义开始时间 36 * 3.定义结束时间 37 */ 38 SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss"); 39 Date nowTime = new Date(); 40 System.out.println("Now Time:"+sf.format(nowTime)); 41 /*Date startTime = new Date(nowTime.getTime()+5000); 42 System.out.println("Start Time:"+sf.format(startTime)); 43 Date endTime = new Date(nowTime.getTime()+30000); 44 System.out.println("End Time:"+sf.format(endTime));*/ 45 46 /** 47 * 1.定义一个CronTrigger 48 * 2.绑定group,name 49 * 3.定义cron表达式规则 50 */ 51 CronTrigger trigger = (CronTrigger)TriggerBuilder 52 .newTrigger() 53 .withIdentity("trigger2", "group1") 54 .withSchedule( 55 CronScheduleBuilder 56 //定义cron表达式规则 57 .cronSchedule("30 43 10 * * ?") 58 ) 59 .build(); 60 61 /** 62 * 1.定义一个SchedulerFactory工厂类 63 * 2.获得一个Scheduler类 64 * 3.启动Scheduler 65 * 4.绑定JobDetail和Trigger 66 */ 67 //定义一个SchedulerFactory工厂类 68 SchedulerFactory factory = new StdSchedulerFactory() ; 69 //获得一个Scheduler类 70 Scheduler scheduler = factory.getScheduler(); 71 //启动Scheduler 72 scheduler.start(); 73 //绑定JobDetail和Trigger 74 scheduler.scheduleJob(jobDetail, trigger); 75 76 } 77 78 }
2.运行结果:
3.代码下载链接:https://github.com/theIndoorTrain/QuartzDemo/tree/5ab064d06f7a0de92de21c84b660366d39cbb859
任务二:
每个周六的上午10:50---10:52每隔11s执行一次
1.修改cron表达式:
Cron表达式:"0/11 50-52 10 ? * 7"
1 package com.xm.scheduler; 2 3 import java.text.SimpleDateFormat; 4 import java.util.Date; 5 6 import org.quartz.CronScheduleBuilder; 7 import org.quartz.CronTrigger; 8 import org.quartz.JobBuilder; 9 import org.quartz.JobDetail; 10 import org.quartz.Scheduler; 11 import org.quartz.SchedulerException; 12 import org.quartz.SchedulerFactory; 13 import org.quartz.SimpleScheduleBuilder; 14 import org.quartz.Trigger; 15 import org.quartz.TriggerBuilder; 16 import org.quartz.impl.StdSchedulerFactory; 17 18 import com.xm.job.HelloJob; 19 20 public class CronHelloScheduler { 21 22 public static void main(String[] args) throws SchedulerException { 23 /** 24 * 1.定义一个JobDetail 25 *2.绑定 HelloJob 26 *3.定义id,group 27 */ 28 JobDetail jobDetail = JobBuilder 29 .newJob(HelloJob.class) 30 .withIdentity("job1", "group1") 31 .build(); 32 33 /** 34 * 1.获取系统时间 35 * 2.定义开始时间 36 * 3.定义结束时间 37 */ 38 SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss"); 39 Date nowTime = new Date(); 40 System.out.println("Now Time:"+sf.format(nowTime)); 41 /*Date startTime = new Date(nowTime.getTime()+5000); 42 System.out.println("Start Time:"+sf.format(startTime)); 43 Date endTime = new Date(nowTime.getTime()+30000); 44 System.out.println("End Time:"+sf.format(endTime));*/ 45 46 /** 47 * 1.定义一个CronTrigger 48 * 2.绑定group,name 49 * 3.定义cron表达式规则 50 */ 51 CronTrigger trigger = (CronTrigger)TriggerBuilder 52 .newTrigger() 53 .withIdentity("trigger2", "group1") 54 .withSchedule( 55 CronScheduleBuilder 56 //定义cron表达式规则 57 .cronSchedule("0/11 50-52 10 ? * 7") 58 ) 59 .build(); 60 61 /** 62 * 1.定义一个SchedulerFactory工厂类 63 * 2.获得一个Scheduler类 64 * 3.启动Scheduler 65 * 4.绑定JobDetail和Trigger 66 */ 67 //定义一个SchedulerFactory工厂类 68 SchedulerFactory factory = new StdSchedulerFactory() ; 69 //获得一个Scheduler类 70 Scheduler scheduler = factory.getScheduler(); 71 //启动Scheduler 72 scheduler.start(); 73 //绑定JobDetail和Trigger 74 scheduler.scheduleJob(jobDetail, trigger); 75 76 } 77 78 }
2.运行截图:
3.代码下载链接:https://github.com/theIndoorTrain/QuartzDemo/tree/a1c93071a16488383ff3332d042dcf537f05c972
2018-07-14
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:web.xml 组件加载顺序
下一篇:Java:Servlet
- 初识Nginx——前后端发布 2020-06-03
- 初识JAVA(学习记录) 2020-05-19
- BAT程序员常用的开发工具,建议收藏! 2020-05-18
- 【JAVA SE基础篇】1.初识Java 2020-05-07
- 初识Java 2020-04-07
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash