Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵 活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。

eg:

jar

entity  (Plan)

public class Plan {
//时间
private String date;
//任务
private String 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;
}
public Plan(String date, String task) {
this.date = date;
this.task = task;
}
public Plan() {
} }

service  (RemindService)

public class RemindService {
public void printMessage(){
List<Plan> list = getPlansForTooday();
for (Plan plan : list) {
System.out.println("计划的时间"+plan.getDate()+plan.getTask());
}
} private List<Plan> getPlansForTooday() {
List<Plan> list = new ArrayList<Plan>();
Plan plan1 = new Plan("2016年11月3日","月底可以购买回家的车票");
Plan plan2 = new Plan("2016年11月3日","webService"); list.add(plan2);
list.add(plan1);
return list;
}
}

quartz  (Remindjob)

public class RemindJob implements Job {

	private RemindService service=new RemindService();
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
service.printMessage(); }
public RemindService getService() {
return service;
}
public void setService(RemindService service) {
this.service = service;
} }

测试类

一分钟后只运行一次

public class MyTest {

	public static void tool() throws SchedulerException{
//一 构建job
JobDetail job = JobBuilder.newJob(RemindJob.class)//
.withIdentity("job1","group1")//
.build(); //二 构建Trigger
Date runTime = DateBuilder.evenMinuteDate(new Date());
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")//
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.startAt(runTime)//
.build();// //三 绑定job和rigger
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
sched.scheduleJob(job,trigger);
sched.start();
} public static void main(String[] args) throws SchedulerException {
tool();
}

  

每两秒运行一次

public class MyTest {

	public static void tool() throws SchedulerException{
//一 构建job
JobDetail job = JobBuilder.newJob(RemindJob.class)//
.withIdentity("job1","group1")//
.build(); //二 构建Trigger
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")//
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(2)
.repeatForever())
.startAt(new Date(System.currentTimeMillis()+2000))
.build();// //三 绑定job和rigger
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
sched.scheduleJob(job,trigger);
sched.start();
} public static void main(String[] args) throws SchedulerException {
tool();
}
}

表达式

public static void tools() throws SchedulerException{
//一 构建job
JobDetail job = JobBuilder.newJob(RemindJob.class)//
.withIdentity("job1","group1")//
.build(); //二 构建Trigger
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")//
.withSchedule(CronScheduleBuilder.cronSchedule("0 0 12 * * ?"))
.startAt(new Date()).build(); //三 绑定job和rigger
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
sched.scheduleJob(job,trigger);
sched.start();
} public static void main(String[] args) throws SchedulerException {
tool();
tools();
}

表达式的特殊字符 

 

 

Quartz的更多相关文章

  1. 免费开源的DotNet任务调度组件Quartz.NET(.NET组件介绍之五)

    很多的软件项目中都会使用到定时任务.定时轮询数据库同步,定时邮件通知等功能..NET Framework具有“内置”定时器功能,通过System.Timers.Timer类.在使用Timer类需要面对 ...

  2. Spring Quartz实现任务调度

    任务调度 在企业级应用中,经常会制定一些"计划任务",即在某个时间点做某件事情 核心是以时间为关注点,即在一个特定的时间点,系统执行指定的一个操作 任务调度涉及多线程并发.线程池维 ...

  3. topshelf和quartz内部分享

    阅读目录: 介绍 基础用法 调试及安装 可选配置 多实例支持及相关资料 quartz.net 上月在公司内部的一次分享,现把PPT及部分交流内容整理成博客. 介绍 topshelf是创建windows ...

  4. Quartz.net持久化与集群部署开发详解

    序言 我前边有几篇文章有介绍过quartz的基本使用语法与类库.但是他的执行计划都是被写在本地的xml文件中.无法做集群部署,我让它看起来脆弱不堪,那是我的罪过. 但是quart.net是经过许多大项 ...

  5. Quartz.net开源作业调度框架使用详解

    前言 quartz.net作业调度框架是伟大组织OpenSymphony开发的quartz scheduler项目的.net延伸移植版本.支持 cron-like表达式,集群,数据库.功能性能强大更不 ...

  6. quartz.net 时间表达式----- Cron表达式详解

    序言 Cron表达式:就是用简单的xxoo符号按照一定的规则,就能把各种时间维度表达的淋漓尽致,无所不在其中,然后在用来做任务调度(定时服务)的quart.net中所认知执行,可想而知这是多么的天衣无 ...

  7. Quartz.NET Windows 服务示例

    想必大家在项目中处理简单的后台持续任务或者定时触发任务的时候均使用 Thread 或者 Task 来完成,但是项目中的这种需求一旦多了的话就得将任务调度引入进来了,那今天就简单的介绍一下 Quartz ...

  8. [Quartz笔记]玩转定时调度

    简介 Quartz是什么? Quartz是一个特性丰富的.开源的作业调度框架.它可以集成到任何Java应用. 使用它,你可以非常轻松的实现定时任务的调度执行. Quartz的应用场景 场景1:提醒和告 ...

  9. 关于Quartz.NET作业调度框架的一点小小的封装,实现伪AOP写LOG功能

    Quartz.NET是一个非常强大的作业调度框架,适用于各种定时执行的业务处理等,类似于WINDOWS自带的任务计划程序,其中运用Cron表达式来实现各种定时触发条件是我认为最为惊喜的地方. Quar ...

随机推荐

  1. 为什么 NaN 不等于自身?

    NaN 即Not a Number , 不是一个数字, 那么NaN到底是什么呢? 话说在JavaScript中,有6大数据类型,分别包括string,number,boolean,undefined, ...

  2. console的高级使用

    1.console.table()用来表格化展示数据. var people = { zqz: { name: 'zhaoqize', age: 'guess?' }, wdx: { name: 'w ...

  3. 用scikit-learn学习谱聚类

    在谱聚类(spectral clustering)原理总结中,我们对谱聚类的原理做了总结.这里我们就对scikit-learn中谱聚类的使用做一个总结. 1. scikit-learn谱聚类概述 在s ...

  4. bash字符串操作

    参考 http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html 问题:bash怎么提取字符串的最后一位?例如python中strin ...

  5. Nexus(一)环境搭建

    昨天,成功搭建了自己的 Maven 环境(详见:Maven(一)环境搭建),今天就来研究和探讨下 Nexus 的搭建! 使用背景: 安装环境:Windows 10 -64位 JDK版本:1.7 Mav ...

  6. 28个你必须知道的HTML5的新特性,技巧以及技术

    崭新新的页面布局 传统的: HTML5: 1. 新的Doctype 尽管使用<!DOCTYPE html>,即使浏览器不懂这句话也会按照标准模式去渲染 2. Figure元素 用<f ...

  7. 升级npm

    查看npm的所有版本 运行命令: npm view npm versions 命令运行后,会输出到目前为止npm的所有版本. [ '1.1.25', '1.1.70', '1.1.71', '1.2. ...

  8. Winserver2012下mysql 5.7解压版(zip)配置安装

    一.安装 下载mysqlzip版本mysql不需要运行可执行文件,解压即可,下载zip版本mysqlmsi版本mysql双击文件即可安装,相对简单,本文不介绍此版本安装 配置环境变量打开环境变量配置页 ...

  9. 鱼眼模式(Fisheye projection)的软件实现

    简单实现 鱼眼模式(Fisheye)和普通的透视投影(Perspective projection),一个很大的区别就是鱼眼的投影算法是非线性的(non-linear),实际照相机的情况是在镜头外面包 ...

  10. 《月之猎人 (Moon Hunters)》主角设计

    原文链接 游戏开发人员,你们好! 我是 Kitfox Games 工作室的总监 Tanya,我们的工作室位于加拿大的蒙特利尔,拥有六名员工. 我们 3 月份发布了<月之猎人>游戏的桌面版, ...