Quartz 之入门示例

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

环境:XP+Myeclipse6.5+JDK1.6 
quartz官网:http://www.quartz-scheduler.org/ 
参考资料 
1 Quartz任务调度快速入门 
http://www.blogjava.net/baoyaer/articles/155645.html 
2 Quartz 
http://ttaale.iteye.com/blog/630202 
http://java-lyvee.iteye.com/blog/817110 
3 Quartz Job Scheduling Framework 
http://hi.baidu.com/recoder/blog/item/ec7642f1db2b68a7a40f52f3.html 
4 Quartz学习 
http://blog.csdn.net/bubei/article/details/2108778 
5 Quartz学习资料链接 
http://topmanopensource.iteye.com/blog/search?query=quartz 

特别说明:如无特别说明,所有有关quartz示例基于官方示例 

一 Quarta介绍 
1 Quartz是什么 
Quartz就是一个纯 Java 实现的作业调度工具,相当于数据库中的 Job、Windows 的计划任务、Unix/Linux 下的 Cron,但 Quartz 可以把排程控制的更精细. 
2 Quartz 框架的发展历程 
Quartz项目是由James House创立的,在1998年就有该框架最初的构思,包括作业队列的概念,使用线程池来处理作业,在2001年春天在SourceForge 上创立了该项目
Quartz 的目录结构和内容 
Docs Quartz 框架的JavaDoc Api 说明文档 
Examples 多方面使用 Quartz 的例子 
Lib Quartz 使用到的第三方包 
quartz-jboss 提供了特定于 JBoss 特性的源代码 
quartz-oracle 提供了特定于 Oracle 特性的源代码 
quartz-weblogic 提供了特定于 WebLogic 特性的源代码 
二 Quartz的应用场景 
场景 #1: 邮件提醒和告警 
场景 #2: 执行文件传输操作 
场景 #3: 创建销售报表 
三 Quarta的安装及使用 
官网:http://www.quartz-scheduler.org/下载最新的文件,需要你注册才能下载!也可在附件中下载 
四 了解Quartz体系结构 
Quartz对任务调度的领域问题进行了高度的抽象,提出了调度器、任务和触发器这3个核心的概念,并在org.quartz通过接口和类对重要的这些核心概念进行描述 
Quartz 调度包的两个基本单元是作业和触发器。作业是能够调度的可执行任务,触发器提供了对作业的调度. 
调度器:调度器用于将与作业触发器关联,一个作业可关联多个触发器,这样每个触发器被可以触发的作业执行;一个触发器可用于控制多个作业,触发触发时, 
全部作业将获得调度。Quartz的调度器由Scheduler接口体现. 
作业:只需实现org.quartz.job接口即可.Job接口包含一个方法 execute(),execute方法体是被调度的作业体。一旦实现Job接口和execute()方法, 
Quartz确定作业运作的时候,它将调用 execute()方法体。 
触发器:有SimpleTrigger和CronTrigger两种类型 

 
五 工程图片 
 
六 具体代码如下 
Job:是一个接口只有一个方法void execute(JobExecutionContext context),开发者实现该接口定义运行任务,JobExecutionContext类提供了调度上下文的各种信息。Job运行时的信息保存在JobDataMap实例中 
1 定义一个作业类: HelloJob.java 
Java代码 

 

import java.util.Date;  
import org.slf4j.Logger;  
import org.slf4j.LoggerFactory;  
import org.quartz.Job;  
import org.quartz.JobExecutionContext;  
import org.quartz.JobExecutionException;  public class HelloJob implements Job {  private static Logger _log = LoggerFactory.getLogger(HelloJob.class);  public HelloJob() {  }  public void execute(JobExecutionContext context)  throws JobExecutionException {  _log.error(" 咫尺天涯: " + new Date());  }  
}


2 测试类 
Java代码 

import static org.quartz.JobBuilder.newJob;  
import static org.quartz.TriggerBuilder.newTrigger;  
import static org.quartz.DateBuilder.*;  
import java.util.Date;  
import org.quartz.JobDetail;  
import org.quartz.Scheduler;  
import org.quartz.SchedulerFactory;  
import org.quartz.Trigger;  
import org.quartz.impl.StdSchedulerFactory;  
import org.slf4j.Logger;  
import org.slf4j.LoggerFactory;  
public class SimpleExample {  private static Logger log = LoggerFactory.getLogger(SimpleExample.class);  public void run() throws Exception {  // 通过SchedulerFactory获取一个调度器实例  SchedulerFactory sf = new StdSchedulerFactory();      Scheduler sched = sf.getScheduler();  Date runTime = evenMinuteDate(new Date());  // 通过过JobDetail封装HelloJob,同时指定Job在Scheduler中所属组及名称,这里,组名为group1,而名称为job1。  JobDetail job = newJob(HelloJob.class).withIdentity("job1", "group1").build();  // 创建一个SimpleTrigger实例,指定该Trigger在Scheduler中所属组及名称。  // 接着设置调度的时间规则.当前时间运行  Trigger trigger = newTrigger().withIdentity("trigger1", "group1").startAt(runTime).build();  // 注册并进行调度  sched.scheduleJob(job, trigger);  // 启动调度器  sched.start();  try {  //当前线程等待65秒  Thread.sleep(65L * 1000L);  } catch (Exception e) {  }  //调度器停止运行  sched.shutdown(true);  log.error("结束运行。。。。");  }  public static void main(String[] args) throws Exception {  SimpleExample example = new SimpleExample();  example.run();  }  
}  


因为上官网下载麻烦,这里就直接上传了,方便大家下载!目录结构如下: 
Quartz所用到的jar 
 
上传Quartz文件如下 
 
官方文档见附件:quartz-docs.7z

 

下载地址:http://liuzidong.iteye.com/blog/1118992

转自:http://liuzidong.iteye.com/blog/1118992

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/448955.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS3最颠覆性的动画效果,基本属性[3D]

和2D一样也是transform 即变形 1)rotateX rotateY rotateZ(也可以用transform-origin来设置旋转中心点) 2)透视(perspective) 给父亲加透视,透视就是模拟眼睛到物体的距离,近大远小,即数值越小,3D越明显 理…

解决报错 :A component required a bean of type ‘gentle.test.Show‘ that could not be found

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 启动工程失败,报错如题: A component required a bean of type gentle.test.Show that could not be found.…

30天提升技术人的写作力-第十七天

约束作者在漫长的创作过程中,不偏离写作目标。当写的字数在十几万以上时,没有先规划,就会陷入混乱,发生注入重复、疏漏、相关知识未讲解等问题。制作长文章或书籍的大纲,需要使用发散收敛工具。所谓发散是多方向、多思…

白领必看的十种职场致命毒药

找到一个合适的工作可能需要3到15个月不等的时间——然而丢掉饭碗只需要几天或几周。下面是10种职场毒药的特点:       1、人际交往技能不佳       讨人喜欢会大有帮助。研究均表明和那些能力强而呆板的人相比,人们一致而且不可遏制地更喜欢和…

eclipse中folder、source folder和package的区别

今天做ssm项目时,突然发现了这个问题,特别好奇,sqlSessionFactory.xml文件如何找到: 1、放在src/hello目录下: InputStream inputStream Resources.getResourceAsStream("./hello/sqlMapperConfig.xml"); 2…

解决.quartz.ObjectAlreadyExistsException: Unable to store Job : ‘jyGroup.jyJob‘, because one already

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 报错如题: 定时任务出现异常 : org.quartz.ObjectAlreadyExistsException: Unable to store Job : jyGroup.…

WeMos-D1R2的使用

2019独角兽企业重金招聘Python工程师标准>>> WeMos介绍 WeMos-D1R2一个基于ESP8266-12 Wifi模块的Arduino-UNO开发板。也就是说,WeMos-D1R2是一个具有wifi功能的Arduino开发板,但WeMos-D1R2与Arduino-UNO的引脚不是一一对应的,其对…

职场中什么样的员工最易发展?

职场中什么样的员工最“抢手”?也许你会说有能力的人,没错有能力的人竞争力一定很强,但是能力会随着经验的丰富而慢慢变强,所以它不足以某个人在职场中站稳脚主要原因,反而是一个人的工作态度决定着他在职场中的发展方向与前景。…

PAT 1048 数字加密

题目链接 一开始我还以为以b的长度为基准,因为b是要加密的数据啊,看了答案才知道原来要以最长的长度为基准。但是这道题还有个bug,就是当你算出的结果前面有0竟然也可以通过,比如a为1111,b为1111,答案是020…

RabbitMQ MQTT协议和AMQP协议

RabbitMQ MQTT协议和AMQP协议 1 序言... 1 1.1 RabbitMq结构... 1 1.2 RabbitMq消息接收... 4 1.3 Exchange种类和消息发送模式... 4 1.4 RabbitMq的协议... 6 1.4.1 AMQP协议... 6 1.4.2 MQTT协议... 8 2 RabbitMq服务器安装和使用…

Quartz 定时任务(Scheduler)的 3 种实现方式

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 PS&#xff1a;第 3 种最简单。 一、引入 jar 。 <!-- quartz 定时任务调度 --><dependency><groupId>org.springfr…

加速财务自由的7种理财方法

有人说财务自由是个遥不可及的路&#xff0c;有人却觉得想要在财务上成功很简单&#xff0c;到底财务自由有没有一个正确的方法或是被证明的技巧可以被实现&#xff1f;如果你现在还没达成或是正在达成&#xff0c;底下这7种简单有效的行动与方法可以加速你建构财务自由之路。 …

Code Chef December Challenge 2018题解

传送门 \(MAXEP\) 二分&#xff0c;不过二分的时候要注意把\(mid\)设成\(\left\lfloor{9lr\over 10}\right\rfloor\)&#xff0c;这样往右的次数不会超过\(6\)次 //minamoto #include<bits/stdc.h> #define R register #define inline __inline__ __attribute__((always_…

Git 安装及 idea 配置 Git

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1.git官网下载地址&#xff1a;点此跳转git官网 git具体安装不做详细叙述。 2.打开idea 点击Configure -> Settings 3.选择Git 找到…

创业成功需早起?看看IT大佬们的作息时间

有人说&#xff0c;在一个企业里&#xff0c;级别的高低与越起越早现象呈坐标曲线型&#xff0c;也就是说&#xff0c;一开始进职场都嗜睡&#xff0c;有了一定级别就开始早起&#xff0c;随着级别的升高&#xff0c;起床的时间也越来越早&#xff0c;到了级别特高了&#xff0…

第六章学习小结

本章学习了图的结构及应用&#xff0c; 首先是图的分类&#xff0c;图分为无向图、有向图、完全图、连通图、强连通图、带权图、稀疏图、稠密图等等。 图的存储方式有两大类&#xff0c;以边集合方式的表示法和以链接方式的表示法。其中&#xff0c;以边集合方式表示的为邻接矩…

大数据薪资一再飙升 学习大数据需要哪些基础?

2018年6月19日&#xff0c;备受关注的个人所得税法修正案草案迎来第七次大修&#xff0c;个税起征点由每月3500元提高至每月5000元(每年6万元)。对于大多数人来说这绝对是个好消息&#xff0c;但人们更愿意参加培训班实现高薪。近年来&#xff0c;随着互联网的飞速发展以及企业…

idea 玩转 码云 -- idea安装码云插件

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 在git盛行的今天&#xff0c;码云成为中国程序员的第二github&#xff0c;而且还可以免费使用私人空间。下面就开始码云之旅吧。 0.创建…

阿里云的物联网之路

阿里云的物联网之路 作者 | 刘洪峰 责编 | 唐小引 本文首发于 CSDN 微信&#xff08;ID&#xff1a;CSDNnews&#xff09; 原文链接 未来十到二十年&#xff0c;大家基本已经形成了一个共识&#xff0c;那便是新格局的奠定将由 AI 和物联网技术来支撑。放眼国内&#xff0c;在…

不是所有人都懂这样做,你若做了就能高升!

有句话这样说的&#xff0c;成功的人往往都是做着别人不愿意或不知道的事情&#xff0c;懂得付出才会获得成功&#xff01; 同样的道理&#xff0c;身在职场&#xff0c;每个人都有一种被提拔&#xff0c;晋升的愿望。 不过&#xff0c;光想着没用&#xff0c;除了干好自身工…