`
sydhappy
  • 浏览: 3775 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

初识Quartz

阅读更多
首先从Quartz官网上获得相应的jar包,Quartz package包含了许多jar文件,quartz-all-xxx.jar是Quartz的主要的library。获得jar包后引用到自己的工程里(我是把jar下载到我的本地Maven库中)
<dependency>
				<groupId>org.quartz-scheduler</groupId>
				<artifactId>quartz</artifactId>
				<version>${quartz.version}</version>
			</dependency>
			<dependency>
				<groupId>org.quartz-scheduler</groupId>
				<artifactId>quartz-oracle</artifactId>
				<version>${quartz.version}</version>
			</dependency>
			<dependency>
				<groupId>org.quartz-scheduler</groupId>
				<artifactId>quartz-weblogic</artifactId>
				<version>${quartz.version}</version>
			</dependency>

引完jar包,开始我们第一个Quartz的小Demo:首先我们需要定义我们自己的Job
public class MyJob implements Job {
	private Logger logger = LoggerFactory.getLogger(MyJob.class);
	public MyJob(){
		
	}
	@Override
	public void execute(JobExecutionContext arg0) throws JobExecutionException {
		logger.info("my job Start ... ..."+new Date());
	}

}

然后定义scheduler 和trigger 来完成我们Quartz的小Demo
try {
			logger.info("------------------initializing-----------------");
			SchedulerFactory factory = new StdSchedulerFactory();
			Scheduler scheduler = factory.getScheduler();
			logger.info("-------------------initialize complete----------");
			//computer a time that is on the next round time
			Date runTime = DateBuilder.evenMinuteDate(new Date());
			logger.info("-------------------scheduling job---------------");
			//define a Job and tie it to our MyJob class
			JobDetail job = JobBuilder.newJob(MyJob.class)
				.withIdentity("job1", "group1")
				.build();
			//Trigger the job to run on the next round time
			Trigger trigger = TriggerBuilder.newTrigger()
				.withIdentity("trigger1", "group1")
				.startAt(runTime)
				.build();
			//Tell quartz to schedule the job using our trigger
			scheduler.scheduleJob(job, trigger);
			logger.info(job.getKey()+"run at :"+runTime);
			//Start up the scheduler (nothing can actually run until the scheduler  has bean started)
			scheduler.start();
			logger.info("-------------------started Scheduler-------------");
			//wait the scheduler so long enough so that the scheduler as an opportunity to run the job
			logger.info("------------------waiting 65 seconds...----------");
			try{
				//wait the 65 seconds to show job
				Thread.sleep(65L*1000L);
				//execute ...
			}catch (Exception e) {

			}
			//shutdown the scheduler 
			logger.info("----------------shutting down ----------------");
			scheduler.shutdown(true);
			logger.info("----------------shutdown completed------------");
			
		} catch (SchedulerException e) {
			e.printStackTrace();
		}

处理结果:
INFO - ------------------initializing-----------------
 INFO - Using default implementation for ThreadExecutor
 INFO - Job execution threads will use class loader of thread: main
 INFO - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
 INFO - Quartz Scheduler v.2.1.6 created.
 INFO - RAMJobStore initialized.
 INFO - Scheduler meta-data: Quartz Scheduler (v2.1.6) 'DefaultQuartzScheduler' with instanceId 'NON_CLUSTERED'
  Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
  NOT STARTED.
  Currently in standby mode.
  Number of jobs executed: 0
  Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.
  Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.

 INFO - Quartz scheduler 'DefaultQuartzScheduler' initialized from default resource file in Quartz package: 'quartz.properties'
 INFO - Quartz scheduler version: 2.1.6
 INFO - -------------------initialize complete----------
 INFO - -------------------scheduling job---------------
 INFO - group1.job1run at :Tue Nov 20 13:55:00 CST 2012
 INFO - Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started.
 INFO - -------------------started Scheduler-------------
 INFO - ------------------waiting 65 seconds...----------
DEBUG - batch acquisition of 0 triggers
DEBUG - Checking for available updated version of Quartz...
DEBUG - batch acquisition of 1 triggers
DEBUG - Producing instance of Job 'group1.job1', class=com.sdw.quartz1.MyJob
DEBUG - batch acquisition of 0 triggers
DEBUG - Calling execute on job group1.job1
 INFO - my job Start ... ...Tue Nov 20 13:55:00 CST 2012
 INFO - ----------------shutting down ----------------
 INFO - Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED shutting down.
 INFO - Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED paused.
DEBUG - Shutting down threadpool...
DEBUG - WorkerThread is shut down.
DEBUG - WorkerThread is shut down.
DEBUG - WorkerThread is shut down.
DEBUG - WorkerThread is shut down.
DEBUG - WorkerThread is shut down.
DEBUG - WorkerThread is shut down.
DEBUG - WorkerThread is shut down.
DEBUG - WorkerThread is shut down.
DEBUG - WorkerThread is shut down.
DEBUG - WorkerThread is shut down.
DEBUG - No executing jobs remaining, all threads stopped.
DEBUG - Shutdown of threadpool complete.
 INFO - Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED shutdown complete.
 INFO - ----------------shutdown completed------------

哈哈 成功了...
分享到:
评论

相关推荐

    定时框架spring+quartz

    "定时框架spring+quartz"的结合,就是将Quartz的定时功能与Spring的强大集成能力完美融合,为开发者提供了一种高效、灵活的定时任务解决方案。 Spring框架提供了多种方式来管理定时任务,包括使用Spring的`@...

    Quartz.NET源码

    5. **readme.txt**:通常包含项目的基本信息、安装指南、快速入门教程等,是初识项目的重要文档。 6. **server** 文件夹:可能包含了Quartz.NET服务器端的配置和运行文件,用于启动和管理任务调度服务。 7. **bin*...

    Java分布式Elastic-Job和Quartz定时任务课程(1.6G)

    12_初识Elastic-Job.mp4 13_急速入门Simple-1.mp4 14_急速入门Simple-2.mp4 15_急速入门dataflow.mp4 16_急速入门script.mp4 17_知识点检测与小结.mp4 18_Simple作业的3种整合方式介绍.mp4 19_Spring整合Simple作业-...

    初识Spring

    【初识Spring】 Spring是一个广泛使用的Java企业级应用开发框架,它以其依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称AOP)为核心,大大简化了Java应用的开发复杂性...

    1. Spring初识-核心容器.pdf

    spring-context-support提供了支持缓存(例如EhCache)和任务调度(例如Quartz)的支持。spring-expression则提供了强大的表达式语言,用于在运行时查询和操作对象图。 2. AOP(面向切面编程):这个模块为Spring...

    springboot代码

    这些代码可能是按照课程章节进行组织的,例如 "01-课堂代码" 可能是课程的第一部分,包含了初识 Spring Boot、环境配置、起步依赖等基础内容。 Spring Boot 的核心特性包括: 1. **起步依赖**:通过“起步依赖”...

    iPhone游戏编程实例-俄罗斯方块

    - **Objective-C**:虽然原文中提到了作者对Objective-C的初识感到困惑,但随着时间的推移,作者逐渐掌握了这门语言。Objective-C是iOS开发的主要编程语言之一,对于初学者来说可能需要一段时间来适应其语法结构。 ...

    begin-spring-boot:Spring引导初学

    【Spring Boot初识】 Spring Boot是由Pivotal团队提供的全新框架,其设计目标是为了简化Spring应用的初始搭建以及开发过程。它集成了大量的常用第三方库配置,如JPA、RabbitMQ、Quartz等,提供了starter POM来帮助...

Global site tag (gtag.js) - Google Analytics