2.初识CronTrigger
开发工具: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 * * ?"
package com.xm.scheduler; import java.text.SimpleDateFormat;
import java.util.Date; import org.quartz.CronScheduleBuilder;
import org.quartz.CronTrigger;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory; import com.xm.job.HelloJob; public class CronHelloScheduler { public static void main(String[] args) throws SchedulerException {
/**
* 1.定义一个JobDetail
*2.绑定 HelloJob
*3.定义id,group
*/
JobDetail jobDetail = JobBuilder
.newJob(HelloJob.class)
.withIdentity("job1", "group1")
.build(); /**
* 1.获取系统时间
* 2.定义开始时间
* 3.定义结束时间
*/
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
Date nowTime = new Date();
System.out.println("Now Time:"+sf.format(nowTime));
/*Date startTime = new Date(nowTime.getTime()+5000);
System.out.println("Start Time:"+sf.format(startTime));
Date endTime = new Date(nowTime.getTime()+30000);
System.out.println("End Time:"+sf.format(endTime));*/ /**
* 1.定义一个CronTrigger
* 2.绑定group,name
* 3.定义cron表达式规则
*/
CronTrigger trigger = (CronTrigger)TriggerBuilder
.newTrigger()
.withIdentity("trigger2", "group1")
.withSchedule(
CronScheduleBuilder
//定义cron表达式规则
.cronSchedule("30 43 10 * * ?")
)
.build(); /**
* 1.定义一个SchedulerFactory工厂类
* 2.获得一个Scheduler类
* 3.启动Scheduler
* 4.绑定JobDetail和Trigger
*/
//定义一个SchedulerFactory工厂类
SchedulerFactory factory = new StdSchedulerFactory() ;
//获得一个Scheduler类
Scheduler scheduler = factory.getScheduler();
//启动Scheduler
scheduler.start();
//绑定JobDetail和Trigger
scheduler.scheduleJob(jobDetail, trigger); } }
2.运行结果:
3.代码下载链接:https://github.com/theIndoorTrain/QuartzDemo/tree/5ab064d06f7a0de92de21c84b660366d39cbb859
任务二:
每个周六的上午10:50---10:52每隔11s执行一次
1.修改cron表达式:
Cron表达式:"0/11 50-52 10 ? * 7"
package com.xm.scheduler; import java.text.SimpleDateFormat;
import java.util.Date; import org.quartz.CronScheduleBuilder;
import org.quartz.CronTrigger;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory; import com.xm.job.HelloJob; public class CronHelloScheduler { public static void main(String[] args) throws SchedulerException {
/**
* 1.定义一个JobDetail
*2.绑定 HelloJob
*3.定义id,group
*/
JobDetail jobDetail = JobBuilder
.newJob(HelloJob.class)
.withIdentity("job1", "group1")
.build(); /**
* 1.获取系统时间
* 2.定义开始时间
* 3.定义结束时间
*/
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
Date nowTime = new Date();
System.out.println("Now Time:"+sf.format(nowTime));
/*Date startTime = new Date(nowTime.getTime()+5000);
System.out.println("Start Time:"+sf.format(startTime));
Date endTime = new Date(nowTime.getTime()+30000);
System.out.println("End Time:"+sf.format(endTime));*/ /**
* 1.定义一个CronTrigger
* 2.绑定group,name
* 3.定义cron表达式规则
*/
CronTrigger trigger = (CronTrigger)TriggerBuilder
.newTrigger()
.withIdentity("trigger2", "group1")
.withSchedule(
CronScheduleBuilder
//定义cron表达式规则
.cronSchedule("0/11 50-52 10 ? * 7")
)
.build(); /**
* 1.定义一个SchedulerFactory工厂类
* 2.获得一个Scheduler类
* 3.启动Scheduler
* 4.绑定JobDetail和Trigger
*/
//定义一个SchedulerFactory工厂类
SchedulerFactory factory = new StdSchedulerFactory() ;
//获得一个Scheduler类
Scheduler scheduler = factory.getScheduler();
//启动Scheduler
scheduler.start();
//绑定JobDetail和Trigger
scheduler.scheduleJob(jobDetail, trigger); } }
2.运行截图:
3.代码下载链接:https://github.com/theIndoorTrain/QuartzDemo/tree/a1c93071a16488383ff3332d042dcf537f05c972
2018-07-14
2.初识CronTrigger的更多相关文章
- Android动画效果之初识Property Animation(属性动画)
前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Andr ...
- 初识Hadoop
第一部分: 初识Hadoop 一. 谁说大象不能跳舞 业务数据越来越多,用关系型数据库来存储和处理数据越来越感觉吃力,一个查询或者一个导出,要执行很长 ...
- python学习笔记(基础四:模块初识、pyc和PyCodeObject是什么)
一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...
- 初识IOS,Label控件的应用。
初识IOS,Label控件的应用. // // ViewController.m // Gua.test // // Created by 郭美男 on 16/5/31. // Copyright © ...
- UI篇(初识君面)
我们的APP要想吸引用户,就要把UI(脸蛋)搞漂亮一点.毕竟好的外貌是增进人际关系的第一步,我们程序员看到一个APP时,第一眼就是看这个软件的功能,不去关心界面是否漂亮,看到好的程序会说"我 ...
- Python导出Excel为Lua/Json/Xml实例教程(一):初识Python
Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...
- 初识SpringMvc
初识SpringMvc springMvc简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 s ...
- 初识redis数据类型
初识redis数据类型 1.String(字符串) string是redis最基本的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据 ...
- Redis初识、设计思想与一些学习资源推荐
一.Redis简介 1.什么是Redis Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的API.从2010 年 ...
随机推荐
- Java基础10-循日历制作
编写过程:先指定固定的年份来输出指定月份的日历 /*计算1900年1月1日到2018年11月1日一共有多少天 计算月份 对7进行取模,结果就为星期几 */ import java.util.Scann ...
- (转)Python作业day2购物车
Python作业day2购物车 原文:https://www.cnblogs.com/spykids/p/5163108.html 流程图: 实现情况: 可自主注册, 登陆系统可购物,充值(暂未实现) ...
- 聊一聊IAR的workspace文件组织
抽空偶尔做个zigbee实验其实也挺好玩的,今天我就来总结一下嵌入式IAR Embedded Workbench这个非常有效的集成开发环境的文件组织. 每一个workspace由一般是由.c文件和一个 ...
- linux下文件比对功能
很想对吧两个文本有什么不同,可linux下有没有那么方便的工具,怎么办?其实也很简单:diff命令,一行搞定. 新建a.txt文件
- pat05-图3. 六度空间 (30)
05-图3. 六度空间 (30) 时间限制 1500 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard “六度空间”理论又称作“六度分隔(Six Degrees ...
- 自定义java代码快捷生成器使用与问题解决
对于很多的工作了有几年的开发人员来说,初期都是逐个单词语法的自己编写的.而一旦技术水平提高了到了一定的层次之后,在同时工作量的加大,要求我们必须加快提高工作效率.因此就可以利用必要的快捷开发手段和工具 ...
- [转] Java集合类详解
集合类说明及区别Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap ...
- 解决在 WP8/ WP8.1 项目中 引用 C++ 组件时出现的 System.TypeLoadException 错误
本文为个人博客备份文章,原文地址: http://validvoid.net/wp-cpp-typeloadexception/ 使用 Visual Studio 2013 update 4 在 WP ...
- [LeetCode]17. Letter Combinations of a Phone Number电话号码的字母组合
Given a string containing digits from 2-9 inclusive, return all possible letter combinations that th ...
- 应该知道的一些Markdown语法
目录 快速输入标题 斜体和粗体,删除线 分隔线 外链接 无序列表 有序列表 定义型列表 插入图片 文字引用 标签分类 表格 行内代码块 代码段 注脚 待办事宜 Todo 列表 显示当前文章的目录 快速 ...