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表达式的更多相关文章

  1. quartz定时任务中常用的cron表达式

    一:定时cron的格式,一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素. 按顺序依次为: 1.秒(0~59) 2.分钟(0~59) 3.小时(0~23) 4.天(月(0~31,但是你需 ...

  2. JAVAEE——BOS物流项目13:Quartz入门案例、核心概念、cron 表达式的格式(了解)

    1.quartz入门案例 本入门案例基于spring和quartz整合完成. 第一步:创建maven工程,导入spring和quartz相关依赖 第二步:创建任务类 第三步:在spring配置文件中配 ...

  3. Quartz.net配置文件实例及cron表达式详解

    从XML文件创建作业 最新版本的quartz.net支持直接从xml文件创建作业,使用起来很方便.配置文件的格式可以参考下面的例子 <?xml version="1.0" e ...

  4. (2)Spring集成Quartz定时任务框架介绍和Cron表达式详解

    在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等.我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作,但 ...

  5. Spring集成Quartz定时任务框架介绍和Cron表达式详解

    原文地址:http://www.cnblogs.com/obullxl/archive/2011/07/10/spring-quartz-cron-integration.html 在JavaEE系统 ...

  6. Quartz入门案例与介绍(与spring整合)

    Quartz概述 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或 ...

  7. Spring_Spring集成Quartz定时任务框架介绍和Cron表达式详解

    在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等.我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作,但 ...

  8. Quartz中时间参数说明 即Cron表达式

    Cron表达式 Quartz使用类似于Linux下的Cron表达式定义时间规则,Cron表达式由6或7个由空格分隔的时间字段组成,如表1所示: 表1 Cron表达式时间字段 位置 时间域名 允许值 允 ...

  9. Quartz(一):Cron表达式

    正文 1. 表达式介绍 Cron:cron表达式用于配置cronTrigger的实例.cron表达式实际上是由七个子表达式组成.这些表达式之间用空格分隔. Cron格式:[秒] [分] [小时] [日 ...

随机推荐

  1. 《数据结构与算法Python语言描述》习题第二章第一题(python版)

    题目:定义一个表示时间的类Timea)Time(hours,minutes,seconds)创建一个时间对象:b)t.hours(),t.minutes(),t.seconds()分别返回时间对象t的 ...

  2. 转载:《TypeScript 中文入门教程》 13、类型兼容性

    版权 文章转载自:https://github.com/zhongsp 建议您直接跳转到上面的网址查看最新版本. 介绍 TypeScript里的类型兼容性基于结构子类型的. 结构类型是只一种只使用其成 ...

  3. 功能强大的滚动播放插件JQ-Slide

    查看效果:http://keleyi.com/keleyi/phtml/jqplug/4.htmJQ-Slide插件功能强大,滚动方式自由多样全部滚动方式 方式一 方式二 方式三 方式四 方式五 方式 ...

  4. CSS3媒体查询使用小结

    首先我们在使用Media的时候需要先设置下面这段代码,来兼容移动设备的展示效果: 准备工作1:设置Meta标签 <meta name="viewport" content=& ...

  5. [deviceone开发]-组件功能演示示例

    一.简介 这个是官方比较早期对组件功能的展示集合,因为发布的比较早,只包含了部分组件,但是常用的组件和常用的功能都包含了.初学者推荐.二.效果图 三.相关下载 https://github.com/d ...

  6. 设计一个自动生成棋盘格子的JS小程序

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. 自定义View字段表头

    适用场景: 三个列表进行Join,然后试图上显示ProjectedField,而ProjectedField不支持设置DisplayName.默认只能显示英文名. join caml如下: <V ...

  8. Objective-C 快速入门--基础(三)

    1.OC有几种方式创建字符串对象?如:如何创建一个字符串对象:@“Baby”. OC中有3种方式创建字符串对象: 示例:main.m文件中: 控制台输出: 2.OC中如何获取字符串的长度? OC中获取 ...

  9. 进新公司用cornerstone-checkout后遇到的奇葩bug,及解决方法

    从cornerstone中checkout下新的工程,运行报错. 1.开始错误原因是找不到相对应的某个.m文件的路径 解决方案:将缺少的.m文件重新从项目文件夹中导入 2.后来显示 造成的原因是在下面 ...

  10. zDiaLog弹出层

    zDiaLog弹出层  立即下载 插件描述:zDiaLog弹出层 弹出框: 代替window.open.window.alert.window.confirm:提供良好的用户体验: 水晶质感,设计细腻 ...