`
guzizai2007
  • 浏览: 355337 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Quartz学习(一)

 
阅读更多

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深入浅出

    Quartz学习和讲解的word和ppt各一份,web开发者必备。

    quartz学习ppt,document和示例代码

    Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。

    自开发实现Quartz Web管理工具

    基于这样的原因,也是为了学习一个Quartz(以前还没有用到过)。就想着做一个简单Quartz的Web管理工具。包括可以添加一个任务(添加的任务只能是实现了Quartz Job接口的任务),暂停、启动、删除任务。基本这些都能...

    Quartz的学习

    这个是一个很好的事例。很适合初学者. Quartz是一个有关任务管理调度的框架。 建议学java的都学习下

    一个最简单的quartz案例

    博客中《quartz学习笔记一:一个最简单的quartz案例》的项目代码,包含jar包,只要导入即可运行。这是一个最基本的Quartz定时器HelloWorld版。

    一个基础的Quartz定时器案例

    博客中《quartz学习笔记二:一个基础的Quartz定时器案例》的项目代码,包含jar包,只要导入即可运行。这是一个最基本的Quartz定时器API版。

    quartz学习总结

    quartz学习总结 本文使用一系列代码示例介绍 Quartz.NET API,演示它的机制,例如作业、触发器、作业仓库。 Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API

    quartz定时任务使用例子大全

    quartz定时任务使用例子大全,这里面介绍了三种...你只需要在自己的数据库中执行以下对应的sql文件,然后修改一下自己的数据库连接信息就可以直接执行了,而且还附带了quartz学习的ppt,让你以最快的方式学会使用它!

    Quartz_Job+Scheduling_Framework

    也许大多数人听说 Quartz 是在学习或使用 Spring 的时 候,也就是 Spring 整合了 Quartz。而我也不例外,同样是在春天里得悉了这块石英。 当初公司一个项目中有些定时候任务,原来是用 JDK 的 TaskTimer 来实现的,...

    Quartz学习.doc

    快速学习定时器 ,我也是转载的 ,并非原创,看一看还是有很大帮助的

    Quartz调度学习笔记

    Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表

    一个Spring+quartz的例子,希望对大家有帮助

    一个简单的 定时任务的例子,希望能对大家的学习有帮助。 最后,附:cronExpression配置说明 字段 允许值 允许的特殊字符 秒 0-59 , - * / 分 0-59 , - * / 小时 0-23 , - * / 日期 1-31 , - * ? / L W C ...

    quartz 企业级 java

    Java实现定时任务,学习和使用企业级框架quartz

    quartz定时器源码jar包下载

    一个很好的定时器例子,里面有quartz全套jar包,注释详细适合学习

    ssm集成quartz完成定时任务

    该项目是简单的实现quartz持久化集成ssm的,实现定时任务,仅为本人学习的一个简单实例

    Quartz Job Scheduling Framework 中文版 V1.0.0.chm

    大多数人听说 Quartz 是在学习或使用 Spring 的时候,也就是 Spring 整合了 Quartz。 把本人博客上零零散散,顺序错乱的各篇译章汇集成册,做成了一个 《Quartz Job Scheduling Framework 中文版.chm 》文件与各位...

    Quartz教程

    本人最近学习了传智播客的一个电商项目,把里面用到的工具和大家分享一下,方便大家的javaweb的学习。-quartz基本上任何公司都会用到调度这个功能, 比如我们公司需要定期执行调度生成报表, 或者比如博客什么的定时...

    quartz-core-learning:关于Quartz技术的学习积累的例子,开始Quartz学习之旅,精进Quartz

    1.learn_quartz 项目, 学习Quartz的入门demo教程详情使用请参考:2.spring_quartz 项目 ,学习Quartz和Spring整理的入门教程详情使用请参考:3.ssm_quartz项目,一个简单的web项目学习ssm整合Quartz详情使用请参考:...

    Quartz2D动画Demo

    这是我在学习ios的过程中写的一个demo,使用Quartz 2D实现动画功能

    quartz1.6.6 实例

    这是一个本人自主编写的quartz调度框架的入门实例,非常简单,无配置文件,纯java调度,main 方法执行,控制台输出,可作为quartz框架的入门学习使用

Global site tag (gtag.js) - Google Analytics