初识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格式:[秒] [分] [小时] [日 ...
随机推荐
- 使用pyinstaller打包Python应用,生成EXE执行文件
在命令行中切换到要打包的程序所在目录,或者在程序目录打开命令行,直接输入下面的指令即可pyinstaller -F xxx.py pyinstaller -F -w -i manage.ico app ...
- 【Python大系】Python快速教程
感谢原作者:Vamei 出处:http://www.cnblogs.com/vamei 怎么能快速地掌握Python?这是和朋友闲聊时谈起的问题. Python包含的内容很多,加上各种标准库.拓展库, ...
- Mac上编译C++报错
今天在使用Mac编译C++文件时,提示以下错误. Undefined symbols for architecture x86_64: "std::__1::__vector_base_co ...
- 如何寻找“真爱”型合伙人
曾与朋友笑侃,现在找人结婚,跟合伙开公司差不多,各自条件一一对比,细细斟酌,最后双方达成一致,才得凑成一对冤家.谁说不是呢?两种关系都实为"伙伴",开公司重" ...
- git的诞生
Git的诞生 很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了. Linus虽然创建了Linux,但Linux的壮大是靠全世 ...
- spring整合hibernate
spring整合hibernate包括三部分:hibernate的配置.hibernate核心对象交给spring管理.事务由AOP控制 好处: 由java代码进行配置,摆脱硬编码,连接数据库等信息更 ...
- 点击.box跟点击.box.box1
<!DOCTYPE html> <html> <head> <meta charset='UTF-8'> <title>click</ ...
- 偷偷发请求的ajax
概述 对于WEB应用程序:用户浏览器发送请求,服务器接收并处理请求,然后返回结果,往往返回就是字符串(HTML),浏览器将字符串(HTML)渲染并显示浏览器上. 1.传统的Web应用 一个简单操作需要 ...
- UITextFieldDelegate协议
很多人都认为UITextField很简单,为什么会写这个协议呢? 因为在实际开发中可能会用到: 比如要做到下图的效果: 文本框下面的下划线的颜色要随着输入的状态变化: 点击对应的文本框,其下面的线条变 ...
- C#操作Excell常用方法
这是在博客园看的文章,写的很好,所以转一下,方便自己以后用到的时候可以随时查看. range.NumberFormatLocal = "@"; //设置单元格格式为文本 r ...