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

环境: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

Quartz 之入门示例相关推荐

  1. Quartz(1)----入门示例

    1.什么是Quartz? Quartz是一个完全由java编写的开源作业调度框架. 2.Quartz是用来做什么的? Quartz是一个任务调度框架,比如你会遇到如下问题: 1).每月25号,信用卡自 ...

  2. [WCF编程]1.WCF入门示例

    一.WCF是什么? Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,整合了原有的windows通讯的 .net Remotin ...

  3. BizTalk 2006 简单入门示例程序(附源项目文件下载)

    BizTalk 2006 简单入门示例程序(附源项目文件下载) 为初学BizTalk Server 2006的开发人员,提供一个简单入门的示例程序,包括一个Receive Port.Send Port ...

  4. Apache Camel框架入门示例

    2019独角兽企业重金招聘Python工程师标准>>> Apache Camel是Apache基金会下的一个开源项目,它是一个基于规则路由和中介引擎,提供企业集成模式的Java对象的 ...

  5. OUYA游戏开发核心技术剖析OUYA游戏入门示例——StarterKit

    第1章  OUYA游戏入门示例--StarterKit StarterKit是一个多场景的游戏示例,也是OUYA官方推荐给入门开发者分析的第一个完整游戏示例.本章会对StarterKit做详细介绍,包 ...

  6. python爬虫入门实例-终于领会python爬虫入门示例

    随着人工智能 大数据的火热 Python成为了广大科学家和普通大众的学习语言.在学习Python的过程中 有很多人感到迷茫 不知道自己该从什么地方入手,今天我们就来说一些新手该如何学习Python编程 ...

  7. 【Unity 3D 游戏开发】Unity3D 入门 - 工作区域介绍 与 入门示例

    一. 工作区域详解 1. Scence视图 (场景设计面板) scence视图简介 : 展示创建的游戏对象, 可以对所有的游戏对象进行 移动, 操作 和 放置; -- 示例 : 创建一个球体, 控制摄 ...

  8. Castle Active Record for .NET2.0快速入门示例

    一.创建Web工程 创建一个Web站点或者Web应用程序,添加对Castle.ActiveRecord.dll的引用. 二.创建需要持久化的业务实体 在.NET2.0下,由于引入了泛型,创建业务实体比 ...

  9. Spring MVC 入门示例讲解

    在本例中,我们将使用Spring MVC框架构建一个入门级web应用程序.Spring MVC 是Spring框架最重要的的模块之一.它以强大的Spring IoC容器为基础,并充分利用容器的特性来简 ...

最新文章

  1. 解决 从数据库中读出 的文本中的回车无法在 jsp网页上起作用的问题
  2. 华为亮度自动调节没了_一加8T不止有8192级自动亮度调节 刘作虎在线种草
  3. Ajax-goahead局部刷新页面
  4. C++Pascal‘s Triangle杨辉三角的实现算法
  5. 深度有趣 | 01 前言
  6. windows 10下载链接
  7. C#语法——await与async的正确打开方式
  8. (找循环节)Number Sequence
  9. deployment:声明式的升级应用
  10. Vue之表单rules
  11. 【验证码识别】基于matlab CNN卷积神经网络验证码识别【含Matlab源码 098期】
  12. 考研_数学二_中值定理_证明题_辅助函数的设法
  13. Adobe Premiere(pr)2021 安装教程【64位】
  14. JavaScript第6章上机练习2(使用jQuery美化英雄联盟简介页)上机练习3(制作非缘勿扰页面特效)
  15. matlab直方图概率密度图,histeq从用法到原理——Matlab直方图均衡化函数
  16. C中计算梯形的面积(area)
  17. DELL服务器 ubuntu系统 全新硬盘识别不到问题解决及对硬盘做GPT分区
  18. 现实版“武大郎和潘金莲”的婚姻情感纠葛
  19. Java RestTemplate 增加SSL证书
  20. jmeter 接口测试 签名_Jmeter之API接口签名验证测试

热门文章

  1. Razor语法和Razor引擎大全
  2. 什么是runtime?
  3. 【JS 逆向百例】反混淆入门,某鹏教育 JS 混淆还原
  4. Python + GitHub Actions 实现 CSDN 自动签到与抽奖(非 selenium 版本)
  5. 【Python学习】 - plt画图时,添加标题的中英文问题
  6. 【CodeForces - 520B】Two Buttons (bfs或dp或时光倒流,trick)
  7. 【CodeForces - 616D 】Longest k-Good Segment (twopointer,尺取)
  8. mysql 7天自动拒单功能,mysql查询最近7天的数据,没有数据自动补0
  9. java中jframe不存在怎么办,java – 设置JFrame背景,为什么这不起作用?
  10. centos写mysql光标移到上一行_python操作mysql——使用pymysql库