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学习和讲解的word和ppt各一份,web开发者必备。
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。
基于这样的原因,也是为了学习一个Quartz(以前还没有用到过)。就想着做一个简单Quartz的Web管理工具。包括可以添加一个任务(添加的任务只能是实现了Quartz Job接口的任务),暂停、启动、删除任务。基本这些都能...
这个是一个很好的事例。很适合初学者. Quartz是一个有关任务管理调度的框架。 建议学java的都学习下
博客中《quartz学习笔记一:一个最简单的quartz案例》的项目代码,包含jar包,只要导入即可运行。这是一个最基本的Quartz定时器HelloWorld版。
博客中《quartz学习笔记二:一个基础的Quartz定时器案例》的项目代码,包含jar包,只要导入即可运行。这是一个最基本的Quartz定时器API版。
quartz学习总结 本文使用一系列代码示例介绍 Quartz.NET API,演示它的机制,例如作业、触发器、作业仓库。 Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API
quartz定时任务使用例子大全,这里面介绍了三种...你只需要在自己的数据库中执行以下对应的sql文件,然后修改一下自己的数据库连接信息就可以直接执行了,而且还附带了quartz学习的ppt,让你以最快的方式学会使用它!
也许大多数人听说 Quartz 是在学习或使用 Spring 的时 候,也就是 Spring 整合了 Quartz。而我也不例外,同样是在春天里得悉了这块石英。 当初公司一个项目中有些定时候任务,原来是用 JDK 的 TaskTimer 来实现的,...
快速学习定时器 ,我也是转载的 ,并非原创,看一看还是有很大帮助的
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表
一个简单的 定时任务的例子,希望能对大家的学习有帮助。 最后,附:cronExpression配置说明 字段 允许值 允许的特殊字符 秒 0-59 , - * / 分 0-59 , - * / 小时 0-23 , - * / 日期 1-31 , - * ? / L W C ...
Java实现定时任务,学习和使用企业级框架quartz
一个很好的定时器例子,里面有quartz全套jar包,注释详细适合学习
该项目是简单的实现quartz持久化集成ssm的,实现定时任务,仅为本人学习的一个简单实例
大多数人听说 Quartz 是在学习或使用 Spring 的时候,也就是 Spring 整合了 Quartz。 把本人博客上零零散散,顺序错乱的各篇译章汇集成册,做成了一个 《Quartz Job Scheduling Framework 中文版.chm 》文件与各位...
本人最近学习了传智播客的一个电商项目,把里面用到的工具和大家分享一下,方便大家的javaweb的学习。-quartz基本上任何公司都会用到调度这个功能, 比如我们公司需要定期执行调度生成报表, 或者比如博客什么的定时...
1.learn_quartz 项目, 学习Quartz的入门demo教程详情使用请参考:2.spring_quartz 项目 ,学习Quartz和Spring整理的入门教程详情使用请参考:3.ssm_quartz项目,一个简单的web项目学习ssm整合Quartz详情使用请参考:...
这是我在学习ios的过程中写的一个demo,使用Quartz 2D实现动画功能
这是一个本人自主编写的quartz调度框架的入门实例,非常简单,无配置文件,纯java调度,main 方法执行,控制台输出,可作为quartz框架的入门学习使用