简介:
Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。Quartz 允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Quartz 的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业。虽然可以通过属性文件(在属性文件中可以指定 JDBC 事务的数据源、全局作业和/或触发器侦听器、插件、线程池,以及更多)配置 Quartz,但它根本没有与应用程序服务器的上下文或引用集成在一起。结果就是作业不能访问 Web 服务器的内部函数;例如,在使用 WebSphere 应用服务器时,由 Quartz 调度的作业并不能影响服务器的动态缓存和数据源。
本文使用一系列代码示例介绍 Quartz API,演示它的机制,例如作业、触发器、作业仓库和属性。
入门
要开始使用 Quartz,需要用 Quartz API 对项目进行配置。步骤如下:
下载 Quartz API:
http://www.opensymphony.com/quartz/download.action。
解压缩并把 quartz-x.x.x.jar 放在项目文件夹内,或者把文件放在项目的类路径中。
把 core 和/或 optional 文件夹中的 jar 文件放在项目的文件夹或项目的类路径中。
如果使用 JDBCJobStore,把所有的 JDBC jar 文件放在项目的文件夹或项目的类路径中。
下载带JAR的示例:
http://download.boulder.ibm.com/ibmdl/pub/software/dw/java/j-quartz-withJars.zip
简单触发器
public class SimpleTriggerRunner {
public void task() throws SchedulerException
{
// Initiate a Schedule Factory
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
// Retrieve a scheduler from schedule factory
Scheduler scheduler = schedulerFactory.getScheduler();
// current time
long ctime = System.currentTimeMillis();
// Initiate JobDetail with job name, job group, and executable job class
JobDetail jobDetail = new JobDetail("jobDetail-s1", "jobDetailGroup-s1", SimpleQuartzJob.class);
// Initiate SimpleTrigger with its name and group name
SimpleTrigger simpleTrigger = new SimpleTrigger("simpleTrigger", "triggerGroup-s1");
// set its start up time
simpleTrigger.setStartTime(new Date(ctime));
// set the interval, how often the job should run (10 seconds here)
simpleTrigger.setRepeatInterval(10000);
// set the number of excution of this job, set to 10 times. It will run 10 time and exhaust.
simpleTrigger.setRepeatCount(100);
// set the ending time of this job. We set it for 60 seconds from its startup time here
// Even if we set its repeat count to 10, this will stop its process after 6 repeats
// as it gets it endtime by then.
//simpleTrigger.setEndTime(new Date(ctime + 60000L));
// set priority of trigger. If not set, the default is 5
//simpleTrigger.setPriority(10);
// schedule a job with JobDetail and Trigger
scheduler.scheduleJob(jobDetail, simpleTrigger);
// start the scheduler
scheduler.start();
}
public static void main (String args[])
{
try {
SimpleTriggerRunner qRunner = new SimpleTriggerRunner();
qRunner.task();
} catch (Exception e)
{
e.printStackTrace();
}
}
}
另一种复杂触发器 可以接受一个表达式进行设定何时执行
JobDetail jobDetail = new JobDetail("jobDetail3", "jobDetailGroup3", SimpleQuartzJob.class);
// Initiate CronTrigger with its name and group name
CronTrigger cronTrigger = new CronTrigger("cronTrigger3", "triggerGroup3");
try {
// setup CronExpression
CronExpression cexp = new CronExpression("0/5 * * * * ?");
// Assign the CronExpression to CronTrigger
cronTrigger.setCronExpression(cexp);
} catch (Exception e) {
e.printStackTrace();
}
// schedule a job with JobDetail and Trigger
scheduler.scheduleJob(jobDetail, cronTrigger);
// start the scheduler
scheduler.start();
CronExpression 表达式语法详解见下一文:
http://just4java.iteye.com/blog/582119
Quartz 的内存 Job 存储有两种方式:RAMJobStore 和JobStoreTX 详解见:
http://just4java.iteye.com/blog/582199
分享到:
相关推荐
Quartz作业调度框架是Java开发中的一个强大工具,用于实现定时任务和工作流管理。它以其灵活性、可扩展性和稳定性而被广泛应用。本学习笔记主要围绕Quartz的使用,特别是如何利用corn表达式来设置定时任务。 Quartz...
Quartz作业调度框架是Java领域中非常重要的一个开源作业调度库。作业调度是指在预定的时间安排特定的任务进行执行。在企业级应用中,作业调度扮演着核心的角色,它使得企业能够自动化地执行定时任务,比如数据备份、...
### quartz开源作业调度框架知识点详解 #### 一、Quartz框架简介 Quartz是一个功能强大的、开源的作业调度框架,完全由Java编写而成。它能够被应用在服务器端的Java应用程序中,帮助开发者轻松地创建并管理定时任务...
Quartz是一个广泛应用于企业级应用中的开源作业调度框架,它为开发者提供了强大的任务调度功能,使得应用程序能够在预定的时间执行特定的任务。Quartz的核心设计目标是简单易用且可高度扩展,能够满足从小型项目到...
Quartz是一款广泛应用于Java环境中的开源作业调度框架,它的核心功能是实现任务的自动化执行,如定时触发、周期性执行等。Quartz以其强大的灵活性和稳定性,在企业级应用中占据了重要地位,尤其对于需要定时执行任务...
Quartz 是一个强大的开源作业调度框架,主要用于自动化执行任务,如定时发送邮件、执行数据清理、执行批处理等。该框架完全用 Java 编写,兼容 J2SE 和 J2EE 环境,提供了丰富的功能和灵活性,使得开发者能够方便地...
Quartz是一款开源的作业调度框架,它为Java应用程序提供了强大的定时任务处理能力。在Spring框架中,Quartz可以被集成来实现复杂的定时任务调度。本文将深入探讨Quartz的使用,包括其基本概念、配置、API以及在Web...
Quartz.NET是一个强大的开源作业调度框架,主要用于C#编程环境中,它允许开发者在应用程序中创建、安排和执行任务。这个框架的设计目标是提供一个灵活、可靠的解决方案,使得开发者可以轻松地构建定时任务,以实现...
Quartz是一个开源的作业调度框架,它为Java应用程序提供了强大的定时和计划功能。在Java项目中,Quartz常被用来执行周期性的任务,比如数据备份、日志清理、定时发送邮件等。本“quartz任务调度框架简单实用小demo”...
Quartz是一个开源的作业调度框架,它用于在Java应用程序中实现复杂的定时任务。Quartz的主要功能是安排作业(Job)在特定的时间点执行,这些作业可以是任何实现了Quartz接口的任务,比如数据处理、文件传输、邮件...
Quartz是一款开源的作业调度框架,它允许开发者创建、组织和执行定时任务。在Java开发环境中,Quartz常被用于实现复杂的工作调度需求,比如定时发送邮件、执行数据同步或者在特定时间运行某些业务逻辑。这个"quartz...
Quartz作业调度是一个开源的Java作业调度框架,它允许开发者创建、调度和执行应用程序中的重复或定时任务。这个"quartz作业调度Demo"提供了一个简单的示例,帮助我们理解如何在实际项目中利用Quartz来管理任务。 1....
Quartz作业调度器是Java平台上的一个开源任务调度框架,广泛应用于企业级应用中,用于自动化执行周期性任务。Spring框架提供了对Quartz的集成,使得在Spring应用中使用Quartz变得更加便捷。这个压缩包文件可能包含了...
Quartz 2.1.2 for .NET 是一个强大的、完全开源的作业调度框架,专为.NET环境设计。它提供了一种高度可配置的方式,使开发者能够轻松地在应用程序中添加定时任务执行的功能。这个框架使得开发人员可以定义作业(Jobs...
Quartz.NET是一个开源的工作调度框架,它允许开发者在.NET环境中创建和执行计划任务。这个“作业调度Quartz.net源代码”文件很可能是包含了Quartz.NET的示例代码或者一个简单的项目,帮助用户理解和学习如何使用...
Quartz是一个完全由Java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制。Quartz允许开发人员根据时间间隔来调度作业。它实现了作业和触发器的多对多的关系,还能把多个作业与不同的...
Quartz是一款开源的作业调度框架,它允许开发者创建、组织和执行定时任务。在Java开发环境中,Quartz被广泛用于实现应用程序的自动化任务执行,比如数据清理、定期发送邮件、执行统计分析等。本示例"quartz作业调度...