1、下载地址:http://quartz-scheduler.org/downloads/catalog
2、quartz-2.1.5文件根目录中有很多jar包,Quartz 最核心的包就是quartz-all-2.1.5.jar,如果需要用到其他Quartz 的其他特性,可以考虑将相应的包加入到classpath中,除此之外,Quartz 还依赖一些第三方的包,那些包都放在了lib目录下,将其也全部加入到classpath中
3、在src下新建一个quartz.properties文件,该文件用来配置Quartz 的一些参数
一个简单的实例:
quartz.properties文件配置内容如下:
org.quartz.scheduler.instanceName: QuartzTest
org.quartz.threadPool.threadCount: 3
org.quartz.jobStore.class: org.quartz.simpl.RAMJobStore
log4j.properties配置内容如下:
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
QuartzTest.java
package demo01;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.TriggerKey;
import org.quartz.impl.StdSchedulerFactory;
/**
* 每隔2秒调用一次job
* 功能:TODO
* 类名:QuartzTest
* 作者:smile
* 时间:Aug 11, 2012:3:25:46 PM
*/
public class QuartzTest {
public static void main(String[] args) {
new QuartzTest().run();
}
public void run() {
try {
//Scheduler instances are produced by a SchedulerFactory
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler scheduler = sf.getScheduler();
//JobDetail Conveys the detail properties of a given Job instance. JobDetails are to be created/defined with JobBuilder.
//JobBuilder无构造函数,所以只能通过JobBuilder的静态方法newJob(Class<? extends Job> jobClass)生成JobBuilder实例
//withIdentity(String name,String group)参数用来定义jobKey,如果不设置,也会自动生成一个独一无二的jobKey用来区分不同的job
//build()方法 Produce the JobDetail instance defined by this JobBuilder.
JobDetail job = JobBuilder.newJob(JobTest.class).withIdentity("job1", "group1").build();
//use TriggerBuilder to instantiate an actual Trigger
//withIdentity(String name,String group)参数用来定义TriggerKey,如果不设置,也会自动生成一个独一无二的TriggerKey用来区分不同的trigger
Trigger trigger = TriggerBuilder.newTrigger().withIdentity(new TriggerKey("trigger1", "group1")).startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2).repeatForever())
.build();
// Tell quartz to schedule the job using our trigger
scheduler.scheduleJob(job, trigger);
// Start up the scheduler
scheduler.start();
//当前主线程睡眠2秒
System.out.println(Thread.currentThread().getName());
Thread.sleep(30*1000);
// shut down the scheduler
scheduler.shutdown(true);
} catch (SchedulerException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
JobTest.java
package demo01;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class JobTest implements Job{
//Instances of Job must have a public no-argument constructor
public JobTest(){
}
public void execute(JobExecutionContext arg0) throws JobExecutionException {
//看打印出的当前对象每次都不一样,就等于每次执行一次任务都新建一个job实例
System.out.println("我的任务就是调用当前Job:"+this+"不断刷屏!!!");
}
}
控制台打印的结果:
2012-08-11 08:34:15,512 INFO [org.quartz.impl.StdSchedulerFactory] - Quartz scheduler 'QuartzTest' initialized from default resource file in Quartz package: 'quartz.properties'
2012-08-11 08:34:15,512 INFO [org.quartz.impl.StdSchedulerFactory] - Quartz scheduler version: 2.1.5
2012-08-11 08:34:15,527 INFO [org.quartz.core.QuartzScheduler] - Scheduler QuartzTest_$_NON_CLUSTERED started.
main
我的任务就是调用当前Job:demo01.JobTest@1c672d0不断刷屏!!!
我的任务就是调用当前Job:demo01.JobTest@1855af5不断刷屏!!!
我的任务就是调用当前Job:demo01.JobTest@198dfaf不断刷屏!!!
我的任务就是调用当前Job:demo01.JobTest@1858610不断刷屏!!!
我的任务就是调用当前Job:demo01.JobTest@12498b5不断刷屏!!!
我的任务就是调用当前Job:demo01.JobTest@1a5ab41不断刷屏!!!
我的任务就是调用当前Job:demo01.JobTest@18e3e60不断刷屏!!!
我的任务就是调用当前Job:demo01.JobTest@1a125f0不断刷屏!!!
我的任务就是调用当前Job:demo01.JobTest@c1cd1f不断刷屏!!!
我的任务就是调用当前Job:demo01.JobTest@181afa3不断刷屏!!!
我的任务就是调用当前Job:demo01.JobTest@131f71a不断刷屏!!!
我的任务就是调用当前Job:demo01.JobTest@15601ea不断刷屏!!!
我的任务就是调用当前Job:demo01.JobTest@197d257不断刷屏!!!
我的任务就是调用当前Job:demo01.JobTest@7259da不断刷屏!!!
我的任务就是调用当前Job:demo01.JobTest@16930e2不断刷屏!!!
我的任务就是调用当前Job:demo01.JobTest@1add2dd不断刷屏!!!
2012-08-11 08:34:45,538 INFO [org.quartz.core.QuartzScheduler] - Scheduler QuartzTest_$_NON_CLUSTERED shutting down.
2012-08-11 08:34:45,538 INFO [org.quartz.core.QuartzScheduler] - Scheduler QuartzTest_$_NON_CLUSTERED paused.
2012-08-11 08:34:46,023 INFO [org.quartz.core.QuartzScheduler] - Scheduler QuartzTest_$_NON_CLUSTERED shutdown complete.
分享到:
相关推荐
Quartz是一款开源的作业调度框架,它允许开发者在Java应用程序中定义、安排和执行复杂的任务。这个学习笔记将深入探讨Quartz的核心概念、主要功能以及如何在实际项目中使用它。 首先,我们要理解Quartz的基本架构。...
Spring Quartz是一款广泛使用的Java任务调度框架,用于在应用程序中安排周期性或一次性任务。Quartz集群(Cluster)是指多个Quartz实例(节点)共享相同的作业和触发器,从而实现高可用性和故障转移。本文将深入探讨...
六、Quartz学习资源 本教程、学习手册和帮助手册将详细阐述Quartz的各个方面,从基本使用到高级特性的实践,帮助开发者从初学者到精通者。通过阅读这些资料,你可以掌握如何在项目中有效地使用Quartz,提升系统的...
Quartz 是一个强大的任务调度框架,它允许开发者创建和安排任务执行,以便在特定时间自动触发。Quartz 的设计灵活性高,可以轻松地融入各种Java应用程序,包括独立应用、应用服务器和Servlet容器。以下是关于Quartz...
Quartz 是一个开源的作业调度框架,用于在 Java 应用程序中安排任务。它提供了丰富的 API 和功能,使得开发者可以灵活地定义、调度和管理各种类型的任务。在这个"quartz 项目学习源码"中,你可以深入理解 Quartz 的...
在这个"Quartz学习的eclipse项目的实例"中,我们将深入探讨如何在Eclipse开发环境中配置和使用Quartz来实现复杂的定时调度需求。 首先,让我们了解Quartz的基本概念。Quartz的核心组成部分包括Job(工作)、Trigger...
Quartz是一个开源的作业调度框架,它允许Java开发者在应用程序中定义复杂的任务调度。Quartz中文教程学习资源对于初学者来说是非常有价值的,因为它可以帮助你快速理解这个强大的工具,并将其有效地应用到实际项目中...
Quartz是一款开源的作业调度框架,它为Java应用程序提供了强大的定时任务管理能力。Quartz Job Scheduling ...通过深入学习Quartz提供的文档和示例,开发者可以充分利用这个工具来提升应用程序的自动化和智能化程度。
Quartz是一款开源的作业调度框架,它允许开发者在Java应用程序中定义和执行复杂的任务调度。Quartz的核心功能是创建、安排和执行Job(任务),这些Job可以是任何实现了`org.quartz.Job`接口的Java对象。Quartz通过...
通过阅读《Quartz学习.doc》和《Quartz学习.ppt》,你可以更深入地了解Quartz的原理、配置、使用示例和最佳实践,进一步提升你在Web开发中的任务调度能力。文档中可能还会涵盖如何处理Job执行异常、如何设置Job依赖...
Quartz是一款开源的作业调度框架,它允许开发者创建、组织和执行计划任务。这个实例是为初学者设计的,用于帮助理解Quartz的基本概念和使用方式。在MyEclipse 6.0.1环境下,你可以直接运行这个Spring整合Quartz的...
### Quartz 学习知识点 #### 一、Quartz 概述 - **Quartz** 是一个功能强大的**开源任务调度框架**,适用于 Java 应用程序。它支持复杂的触发规则,能够灵活地调度任务。 #### 二、Quartz 的运行环境 - **嵌入式...
Quartz是一个广泛应用于Java环境中的开源任务调度框架,它的主要功能是允许开发人员安排和执行周期性的任务。这个框架使得开发者能够轻松地在应用程序中添加定时任务,而无需关心具体的调度实现,极大地提高了开发...
Quartz是一款开源的作业调度框架,它为Java应用程序提供了强大的作业调度能力。作为一个专业的IT行业大师,理解并掌握Quartz的使用是至关重要的。本文将深入解析Quartz的核心概念、特性以及如何在实际项目中应用。 ...
Quartz 是一个强大的任务调度框架,它为Java开发者提供了一种高效、灵活的方式来安排和执行周期性的任务。Quartz 的核心概念包括调度器(Scheduler)、任务(Job)和触发器(Trigger),这些概念构建了一个完整的任务调度...
### Quartz学习篇 #### 一、Quartz简介与特点 Quartz是OpenSymphony开源组织在Jobscheduling领域的一个优秀开源项目,它完全采用Java语言开发,可以用来执行定时任务,功能强大,相比于Java内置的`java.util.Timer...
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。
### Java框架介绍: Quartz从入门到进阶 ...无论是对于初学者还是有经验的开发者来说,Quartz都是一个值得深入学习和使用的工具。通过对Quartz的学习和实践,可以大大提高开发效率并为项目带来更高的稳定性和可靠性。