一 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

  1. import java.util.Date;
  2. import org.slf4j.Logger;
  3. import org.slf4j.LoggerFactory;
  4. import org.quartz.Job;
  5. import org.quartz.JobExecutionContext;
  6. import org.quartz.JobExecutionException;
  7. public class HelloJob implements Job {
  8. private static Logger _log = LoggerFactory.getLogger(HelloJob.class);
  9. public HelloJob() {
  10. }
  11. public void execute(JobExecutionContext context)
  12. throws JobExecutionException {
  13. _log.error(" 咫尺天涯: " + new Date());
  14. }
  15. }

2 测试类

    1. import static org.quartz.JobBuilder.newJob;
    2. import static org.quartz.TriggerBuilder.newTrigger;
    3. import static org.quartz.DateBuilder.*;
    4. import java.util.Date;
    5. import org.quartz.JobDetail;
    6. import org.quartz.Scheduler;
    7. import org.quartz.SchedulerFactory;
    8. import org.quartz.Trigger;
    9. import org.quartz.impl.StdSchedulerFactory;
    10. import org.slf4j.Logger;
    11. import org.slf4j.LoggerFactory;
    12. public class SimpleExample {
    13. private static Logger log = LoggerFactory.getLogger(SimpleExample.class);
    14. public void run() throws Exception {
    15. // 通过SchedulerFactory获取一个调度器实例
    16. SchedulerFactory sf = new StdSchedulerFactory();
    17. Scheduler sched = sf.getScheduler();
    18. Date runTime = evenMinuteDate(new Date());
    19. // 通过过JobDetail封装HelloJob,同时指定Job在Scheduler中所属组及名称,这里,组名为group1,而名称为job1。
    20. JobDetail job = newJob(HelloJob.class).withIdentity("job1", "group1").build();
    21. // 创建一个SimpleTrigger实例,指定该Trigger在Scheduler中所属组及名称。
    22. // 接着设置调度的时间规则.当前时间运行
    23. Trigger trigger = newTrigger().withIdentity("trigger1", "group1").startAt(runTime).build();
    24. // 注册并进行调度
    25. sched.scheduleJob(job, trigger);
    26. // 启动调度器
    27. sched.start();
    28. try {
    29. //当前线程等待65秒
    30. Thread.sleep(65L * 1000L);
    31. } catch (Exception e) {
    32. }
    33. //调度器停止运行
    34. sched.shutdown(true);
    35. log.error("结束运行。。。。");
    36. }
    37. public static void main(String[] args) throws Exception {
    38. SimpleExample example = new SimpleExample();
    39. example.run();
    40. }
    41. }

quartz入门实例的更多相关文章

  1. Quartz 入门详解

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

  2. Quartz入门指南

    Quartz入门指南 看到官网的教程对于新手来说不够全面和连贯,因此结合自己的使用过程写下这个入门指南,用以解惑.本文基于Quartz2.2.2版本.请注意,本文为了易于上手,省略了许多重要的概念,建 ...

  3. 定时任务框架Quartz-(一)Quartz入门与Demo搭建

    注:本文来源于:是Guava不是瓜娃  <定时任务框架Quartz-(一)Quartz入门与Demo搭建> 一.什么是Quartz 什么是Quartz? Quartz是OpenSympho ...

  4. Quartz入门例子简介 从入门到菜鸟(一)

    转: Quartz入门例子简介 从入门到菜鸟(一) 2016年11月19日 22:58:24 爱种鱼的猫 阅读数:4039   刚接触quartz这个词并不是在学习过程中...而是WOW里面的界面插件 ...

  5. Quartz 入门详解 专题

    Cron-Expressions are used to configure instances of CronTrigger. Cron-Expressions are strings that a ...

  6. React 入门实例教程(转载)

    本人转载自: React 入门实例教程

  7. struts入门实例

    入门实例 1  .下载struts-2.3.16.3-all  .不摆了.看哈就会下载了. 2  . 解压  后 找到 apps 文件夹. 3.    打开后将 struts2-blank.war   ...

  8. Vue.js2.0从入门到放弃---入门实例

    最近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中,在网上也搜了很多教程,按着教程来做,也总会出现这样那样的问题(坑啊,由于网上那些教程都是Vue.js 1.x版本的,现在用 ...

  9. wxPython中文教程入门实例

    这篇文章主要为大家分享下python编程中有关wxPython的中文教程,分享一些wxPython入门实例,有需要的朋友参考下     wxPython中文教程入门实例 wx.Window 是一个基类 ...

随机推荐

  1. 关于nodejs下载组件经常失败的问题

    由于最近在刚开始做一个前台element和mybatisplus的项目,但是在使用nodejs下载vue的脚手架和各种组件时,会经常出现下载失败的问题,进而导致前台无法启动. 在网上查询之后发现在下载 ...

  2. PHP留言板的实现思路

    本文实例为大家分享了php留言板的实现思路,供大家参考,具体内容如下:1.创建一个存放留言信息的文件名2.获取表单中的数据给一个变量3.判断文件的时候存在4.对文件执行写的操作,在这之前,注意打开文件 ...

  3. ueditor 富文本编辑器 Uncaught TypeError: Cannot set property 'innerHTML' of undefined问题

    ueditor.addListener("ready", function () { ueditor.setContent(‘内容'); });

  4. php_Trait

    * Trait Answer* Trait : 关键字 Trait* 使用 use* 我的理解 是为了解决php不能多继承的一个处理方式* 在使用的时候 可以让两个不相关的类 产生联系* Trait ...

  5. python3 练习题100例 (九)

    题目九:题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?程序分析:兔子的规律为数列1,1,2,3,5 ...

  6. PHP连接MySql闪断自动重连的方法

    使用php作为后台运行程序(例如短信群发),在cli模式下执行php,php需要连接mysql循环执行数据库处理. 当mysql连接闪断时,之后循环的执行将会失败. 我们需要设计一个方法,当mysql ...

  7. C语言实现左旋字符串

    #include<stdio.h> #include<stdlib.h> #include<string.h> void left_rotate(char *str ...

  8. python2.7入门---CGI编程&文件上传&文件下载

        这次我们来看下文件下载和上传的操作.首先是上传,HTML设置上传文件的表单需要设置 enctype 属性为 multipart/form-data,代码如下所示: <!DOCTYPE h ...

  9. Java编辑环境搭建

    1.Java开发环境搭建 这里主要说的是在Windows系统下的环境搭建 JDK的安装 java的sdk简称JDK ,去其官方网站下载最近的JDK即可http://www.oracle.com/tec ...

  10. 几个常用的轻量级web服务

    Node.js 安装:npm install http-server 使用:hs命令,可启动以当前目前为webroot的8080端口web服务,也可指定端口 Python 安装:内置 使用:pytho ...