首先从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"的结合,就是将Quartz的定时功能与Spring的强大集成能力完美融合,为开发者提供了一种高效、灵活的定时任务解决方案。 Spring框架提供了多种方式来管理定时任务,包括使用Spring的`@...
5. **readme.txt**:通常包含项目的基本信息、安装指南、快速入门教程等,是初识项目的重要文档。 6. **server** 文件夹:可能包含了Quartz.NET服务器端的配置和运行文件,用于启动和管理任务调度服务。 7. **bin*...
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是一个广泛使用的Java企业级应用开发框架,它以其依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称AOP)为核心,大大简化了Java应用的开发复杂性...
spring-context-support提供了支持缓存(例如EhCache)和任务调度(例如Quartz)的支持。spring-expression则提供了强大的表达式语言,用于在运行时查询和操作对象图。 2. AOP(面向切面编程):这个模块为Spring...
这些代码可能是按照课程章节进行组织的,例如 "01-课堂代码" 可能是课程的第一部分,包含了初识 Spring Boot、环境配置、起步依赖等基础内容。 Spring Boot 的核心特性包括: 1. **起步依赖**:通过“起步依赖”...
- **Objective-C**:虽然原文中提到了作者对Objective-C的初识感到困惑,但随着时间的推移,作者逐渐掌握了这门语言。Objective-C是iOS开发的主要编程语言之一,对于初学者来说可能需要一段时间来适应其语法结构。 ...
【Spring Boot初识】 Spring Boot是由Pivotal团队提供的全新框架,其设计目标是为了简化Spring应用的初始搭建以及开发过程。它集成了大量的常用第三方库配置,如JPA、RabbitMQ、Quartz等,提供了starter POM来帮助...