`
sydhappy
  • 浏览: 3762 次
  • 性别: 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 quartz-1.8.6 dbTables 建表sql

    Quartz 是一个开源的作业调度框架,广泛应用于Java应用程序中,用于执行定时任务。它提供了丰富的API和灵活性,使得开发者可以方便地定义、安排和管理各种任务。版本1.8.6是Quartz的一个稳定版本,它包含了对数据库...

    quartz-2.2.3版本的quartz初始化sql语句

    Quartz是一款广泛使用的开源任务调度框架,它允许开发者在Java应用程序中定义和执行定时任务。在Quartz 2.2.3版本中,初始化数据库是使用Quartz的关键步骤,因为Quartz依赖于一个持久化存储来保存作业和触发器的信息...

    quartz_2.3.0 SQL脚本

    Quartz 是一个开源的作业调度框架,广泛应用于Java应用程序中,用于执行定时任务。它允许开发者灵活地定义作业和触发器,实现复杂的时间调度。在2.3.0这个版本中,Quartz 提供了针对不同数据库系统的初始化脚本,...

    Android studio下的quartz工程

    **Android Studio下的Quartz工程详解** Quartz是一个开源的作业调度框架,广泛应用于Java环境中的任务调度。在Android Studio中使用Quartz,可以为应用程序添加定时执行的任务功能,例如定期发送通知、更新数据或者...

    quartz创建表sql

    Quartz 是一个开源的作业调度框架,广泛应用于Java企业级应用中,用于自动化任务执行,如定时触发工作流、发送邮件、数据同步等。在Quartz的部署和配置过程中,为了存储作业和触发器的信息,我们需要在关系型数据库...

    quartz-2.3.2-API文档-中文版.zip

    赠送jar包:quartz-2.3.2.jar; 赠送原API文档:quartz-2.3.2-javadoc.jar; 赠送源代码:quartz-2.3.2-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.2.pom; 包含翻译后的API文档:quartz-2.3.2-javadoc-API...

    Quartz 批量下载源码

    Quartz 批量下载源码,Quartz 批量下载源码Quartz 批量下载源码Quartz 批量下载源码Quartz 批量下载源码Quartz 批量下载源码Quartz 批量下载源码Quartz 批量下载源码Quartz 批量下载源码Quartz 批量下载源码

    quartz实例,quartz入门例子

    Quartz是一款开源的作业调度框架,它允许开发者创建、组织和执行计划任务。这个实例是为初学者设计的,用于帮助理解Quartz的基本概念和使用方式。在MyEclipse 6.0.1环境下,你可以直接运行这个Spring整合Quartz的...

    关于spring中quartz的配置

    在Spring框架中集成Quartz是一款常见的任务调度解决方案,它允许开发者在应用中安排定时任务的执行。Quartz是一个开源的作业调度框架,可以用来在Java应用程序中安排复杂的作业任务。以下将详细介绍如何在Spring中...

    Quartz 线程池

    Quartz 是一个开源的作业调度框架,它允许开发者在 Java 应用程序中安排任务的执行。线程池是 Quartz 的核心组成部分,用于管理和执行触发的任务。本文将深入探讨 Quartz 线程池的工作原理、配置以及如何在实际项目...

    quartz和spring-quartz

    Quartz和Spring-Quartz是两个在Java世界中广泛使用的定时任务管理框架。Quartz是一个开源的作业调度框架,允许应用程序定义和调度任务在特定时间执行。而Spring-Quartz则是Spring框架对Quartz的集成,它使得在Spring...

    Quartz所需jar包

    Quartz是一款开源的作业调度框架,它允许开发者在Java应用程序中定义和执行复杂的定时任务。在Java应用开发中,Quartz常被用来自动化各种后台任务,如数据清理、报告生成等。"Quartz所需jar包"是使用Quartz库进行...

    quartz官方数据库大全

    Quartz是一个功能丰富的开源作业调度库,几乎可以集成在任何Java应用程序中 - 从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建简单或复杂的计划,以执行数十,数百甚至数万个作业; 将任务定义为标准...

    quartz scheduler 入门教程

    quartz scheduler 入门教程 Quartz Scheduler 是一种功能丰富、开源的任务调度程序库,可以在任何 Java 程序中使用。它可以用来创建简单或者复杂的执行次数可以达成千上万的任务。任务可以是任何 Java 可以做的事情...

    quartz-2.3.0-API文档-中文版.zip

    赠送jar包:quartz-2.3.0.jar; 赠送原API文档:quartz-2.3.0-javadoc.jar; 赠送源代码:quartz-2.3.0-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.0.pom; 包含翻译后的API文档:quartz-2.3.0-javadoc-API...

    Quartz.NET 官方源码及演示例子

    Quartz.NET 是一个开源的作业调度框架,它允许开发者在.NET环境中定义和执行定时任务。这个框架的强大之处在于它的灵活性和可扩展性,使得开发者能够创建复杂的调度逻辑,以满足各种自动化需求。以下是对Quartz.NET...

    quartz-2.3.2-API文档-中英对照版.zip

    赠送jar包:quartz-2.3.2.jar; 赠送原API文档:quartz-2.3.2-javadoc.jar; 赠送源代码:quartz-2.3.2-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.2.pom; 包含翻译后的API文档:quartz-2.3.2-javadoc-API...

    Quartz.net-定时任务 Demo

    Quartz.NET是一款强大的开源作业调度框架,用于在.NET环境中创建和执行定时任务。这个"Quartz.net-定时任务 Demo"示例将展示如何利用Quartz.NET来安排代码在指定时间后执行,比如几十分钟后的场景。 Quartz.NET的...

    quartz实例sqlserver数据库连接

    Quartz是一款开源的作业调度框架,它允许开发者在应用程序中安排任务执行,比如定时执行某个方法或服务。在“quartz实例sqlserver数据库连接”这个主题中,我们主要讨论如何配置Quartz与SQL Server数据库进行交互,...

Global site tag (gtag.js) - Google Analytics