初识Quartz(入门案例)+常用的Cron表达式
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;
} }
Plan实体类
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;
} }
RemindService
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;
}
}
RemindJob
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(入门案例)+常用的Cron表达式的更多相关文章
- quartz定时任务中常用的cron表达式
一:定时cron的格式,一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素. 按顺序依次为: 1.秒(0~59) 2.分钟(0~59) 3.小时(0~23) 4.天(月(0~31,但是你需 ...
- JAVAEE——BOS物流项目13:Quartz入门案例、核心概念、cron 表达式的格式(了解)
1.quartz入门案例 本入门案例基于spring和quartz整合完成. 第一步:创建maven工程,导入spring和quartz相关依赖 第二步:创建任务类 第三步:在spring配置文件中配 ...
- Quartz.net配置文件实例及cron表达式详解
从XML文件创建作业 最新版本的quartz.net支持直接从xml文件创建作业,使用起来很方便.配置文件的格式可以参考下面的例子 <?xml version="1.0" e ...
- (2)Spring集成Quartz定时任务框架介绍和Cron表达式详解
在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等.我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作,但 ...
- Spring集成Quartz定时任务框架介绍和Cron表达式详解
原文地址:http://www.cnblogs.com/obullxl/archive/2011/07/10/spring-quartz-cron-integration.html 在JavaEE系统 ...
- Quartz入门案例与介绍(与spring整合)
Quartz概述 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或 ...
- Spring_Spring集成Quartz定时任务框架介绍和Cron表达式详解
在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等.我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作,但 ...
- Quartz中时间参数说明 即Cron表达式
Cron表达式 Quartz使用类似于Linux下的Cron表达式定义时间规则,Cron表达式由6或7个由空格分隔的时间字段组成,如表1所示: 表1 Cron表达式时间字段 位置 时间域名 允许值 允 ...
- Quartz(一):Cron表达式
正文 1. 表达式介绍 Cron:cron表达式用于配置cronTrigger的实例.cron表达式实际上是由七个子表达式组成.这些表达式之间用空格分隔. Cron格式:[秒] [分] [小时] [日 ...
随机推荐
- spi 10方式编写
//第一个CS变低的时候要sclk为高电平,第一个跳变沿进行赋值 module spi(input clk,input rst_n,output reg sclk,output reg cs,outp ...
- 数据结构:单链表结构字符串(python版)
#!/urs/bin/env python # -*- coding:utf-8 -*- #异常类 class stringTypeError(TypeError): pass #节点类 class ...
- HttpClient通过Post上传多个文件
public static String sendFilesPost(String url, String fileNames) { HttpClient httpClient = null; Htt ...
- WEB前端--背景相关知识点总结
一.背景(background) 它是单一属性 但是它衍生出很多的复合属性 background-color 背景色 background-image 背景图片 background-repeat ...
- Linux(Centos)之安装tomcat并且部署Java Web项目
1.准备工作 a.下载tomcat linux的包,地址:http://tomcat.apache.org/download-80.cgi,我们下载的版本是8.0,下载方式如图: b ...
- RequireJS 模块的定义与加载
模块不同于传统的脚本文件,它良好地定义了一个作用域来避免全局名称空间污染.它可以显式地列出其依赖关系,并以函数(定义此模块的那个函数)参数的形式将这些依赖进行注入,而无需引用全局变量.RequireJ ...
- 解析Javascript事件冒泡机制
本资源引自: 解析Javascript事件冒泡机制 - 我的程序人生 - 博客频道 - CSDN.NET http://blog.csdn.net/luanlouis/article/details/ ...
- iOS多线程实现3-GCD
原文链接:http://www.cnblogs.com/mddblog/p/4767559.html 敲下gcd三个字母,搜狗第一条显示居然是“滚床单” ^_^ 一.介绍 GCD,英文全称是Grand ...
- js(javascript)与OC(Objective-C)交互
实质上oc与js的通信交互就是发送消息,也即函数调用,iOS7以后官方公布JavaScriptCore framework中很方便我们对他们之间的相互调用.在以前我们只能通过UIWebView的UIW ...
- SqlServer--模糊查询-通配符
查询所有姓张的同学Select * from student where left(sName,1)='张' 看上去很美,如果改成查询名字中带亮的学生怎么做?换一种做法 like Select ...