参考文章【http://www.cnblogs.com/kay/archive/2007/11/02/947372.html】
【http://www.diybl.com/course/3_program/java/javajs/2008530/118164.html】
各种企业应用几乎都会碰到任务调度的需求,就拿论坛来说:每隔半个小时生成精华文章的RSS文件,每天凌晨统计论坛用户的积分排名,每隔30分钟执行锁定用户解锁任务。对于一个典型的MIS系统来说,在每月1号凌晨统计上个月各部门的业务数据生成月报表,每半个小时查询用户是否已经有快到期的待处理业务……,这样的例子俯拾皆是,不胜枚举。
Quartz 在开源任务调度框架中的翘首,它提供了强大任务调度机制,难能可贵的是它同时保持了使用的简单性。Quartz 允许开发人员灵活地定义触发器的调度时间表,并可以对触发器和任务进行关联映射。
Spring为创建Quartz的Scheduler、Trigger和JobDetail提供了便利的FactoryBean类,以便能够在Spring 容器中享受注入的好处。此外Spring还提供了一些便利工具类直接将Spring中的Bean包装成合法的任务。Spring进一步降低了使用Quartz的难度,能以更具Spring风格的方式使用Quartz。概括来说它提供了两方面的支持:
1)为Quartz的重要组件类提供更具Bean风格的扩展类;
2)提供创建Scheduler的BeanFactory类,方便在Spring环境下创建对应的组件对象,并结合Spring容器生命周期进行启动和停止的动作。
配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 要调用的工作类 -->
<bean id="quartzJob" class="test.Task"></bean>
<!-- 定义调用对象和调用对象的方法 -->
<bean id="jobtask"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject">
<ref bean="quartzJob" />
</property>
<!-- 调用类中的方法 -->
<property name="targetMethod">
<value>work</value>
</property>
</bean>
<!-- 定义触发时间 -->
<bean id="doTime"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="jobtask" />
</property>
<!-- cron表达式 -->
<property name="cronExpression">
<value>10,15,20,25,30,35,40,45,50,55 * * * * ?</value>
</property>
</bean>
<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean id="startQuertz" lazy-init="false" autowire="no"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="doTime" />
</list>
</property>
</bean>
</beans>
要调度的工作类:
public class Task{
public void work() {
System.out.println("Quartz的任务调度!");
}
}
主测试文件:
public class QuartzTest {
public static void main(String[] args) {
System.out.println("Test start.");
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
//如果配置文件中将startQuertz bean的lazy-init设置为false 则不用实例化
System.out.print("Test end..\n");
}
}
注意:项目中需要加载需要加入spring.jar quartz-all-1.6.0.jar log4j-1.2.14.jar commons-collections.jar jta.jar commons-logging.jar这几个包
分享到:
相关推荐
Spring Quartz是一个强大的任务调度框架,它允许开发人员在Java应用程序中安排复杂的任务执行。Quartz是开源的,可扩展的,且与Spring框架完美集成,为应用提供了灵活且可靠的定时任务管理能力。在这个"spring-...
这个实例是为初学者设计的,用于帮助理解Quartz的基本概念和使用方式。在MyEclipse 6.0.1环境下,你可以直接运行这个Spring整合Quartz的示例项目,以便深入学习Quartz的调度功能。 Quartz的核心概念包括: 1. **Job...
以下是对Spring整合Quartz使用实例的详细说明: 1. **Quartz简介** Quartz是一个强大的、完全开源的作业调度框架,它支持复杂的调度策略,如按日期、时间间隔或自定义表达式执行。Quartz可以在Java应用中作为独立...
二、Quartz的主要组件 1. 作业(Job):作业是实际执行的任务,它实现了`org.quartz.Job`接口。你可以定义自己的作业类来执行特定的业务逻辑。 2. 触发器(Trigger):触发器定义了作业的执行时间,如cron表达式或...
Quartz.Net可以实现诸如定时发送邮件、定时处理数据、定时轮询数据库等计划任务,只需要几句代码,不需要Windows计划任务也能实现诸如“每天晚上7:00发送邮件”、“每隔半个小时查询一次库存”之类的目的
本实例——"Quartz Web 应用实例",将帮助我们理解如何在Web应用中集成和使用 Quartz。 首先,让我们深入理解 Quartz 的核心概念。Quartz 主要由三部分组成:`Job`、`Trigger` 和 `Scheduler`。`Job` 是要执行的...
在"Quartz.NET实例"中,我们主要关注的是如何利用Quartz.NET进行任务管理和动态改变任务的执行周期。 首先,让我们深入理解Quartz.NET的核心概念。Quartz.NET的核心组件包括Job(作业)、Trigger(触发器)和...
这篇博客文章“Quartz的应用实例”可能详细介绍了如何在Spring框架中集成Quartz,以及如何利用Quartz进行任务调度。 Quartz的核心概念包括: 1. **Job**:表示一个可执行的任务,它定义了实际要执行的工作。你可以...
本篇将基于"quartz集群完整应用实例"来深入探讨Quartz的集群配置与实现。 Quartz的核心概念包括Job(任务)、Trigger(触发器)和Scheduler(调度器)。Job是执行的具体任务,Trigger定义了任务何时运行,而...
这个实例可以立即运行,展示了如何在实际应用中配置和使用Quartz。 Quartz的核心概念包括作业(Job)、触发器(Trigger)和调度器(Scheduler)。作业是你要执行的任务,而触发器定义了任务何时运行。调度器则负责...
在这个"quartz定时调度完整实例"中,我们将深入理解Quartz的工作原理和如何在项目中实际应用。 1. **Quartz简介** - Quartz是Cron-like和Calendar-based作业调度的Java实现,它允许开发人员在应用程序中定义、安排...
标题 "Spring + Quartz配置实例(转载)" 暗示了我们将讨论如何在Java环境中整合Spring框架与Quartz作业调度库的使用。Quartz是一个开源的作业调度库,它允许开发者安排任务以在特定时间执行,而Spring框架则是一个...
Quartz是一个功能齐全、开源的任务调度服务框架,它可以被集成到几乎所有类型的Java应用程序中,无论是小型的独立应用还是大型的企业级系统,甚至是复杂的电子商务平台。Quartz框架支持创建简单或复杂的调度计划,...
Spring Quartz 是一个强大的任务调度框架,它允许开发者在Spring应用中轻松地定义和执行定时任务。Quartz 是一个开源的作业调度库,可以用来创建、调度和执行作业,而Spring框架则提供了与Quartz集成的模块,使得在...
然而,这个实例主要关注的是基础用法,帮助初学者快速理解和上手Quartz。 总的来说,"quartz1.6.6 实例"是一个很好的学习资源,它通过一个简单的项目展示了如何在Java程序中集成Quartz进行任务调度。通过阅读和运行...
在Java应用程序中,Quartz常被用来实现复杂的时间驱动功能,比如自动发送邮件、数据备份或者执行某些周期性的业务逻辑。它的灵活性和强大性使得它在企业级应用中广泛使用。 Shiro则是Apache提供的一款强大的安全...
Quartz是一款广泛应用于Java环境中的开源任务调度框架,它允许开发者定义、安排和执行周期性的任务。本实例将深入解析如何在项目中有效地利用Quartz进行任务管理。 首先,了解Quartz的核心概念至关重要。Quartz提供...
2. **配置数据库连接**:在Quartz.NET的配置文件(通常是quartz.config或app.config)中,你需要指定数据库连接字符串。例如: ```xml <add key="quartz.jobStore.connectionString" value="Data Source=...
Quartz 是一个开源的作业调度框架,用于开发 Java 应用程序。它可以被应用在任何 Java 应用中作为一个独立的类库或作为一个为 Web 应用提供服务的后端任务执行者。Quartz 允许开发人员定义触发器(Trigger),这些...
在这个实例中,我们将深入探讨Quartz 2.1.5的关键特性和使用方法。 首先,基础调用实例展示了如何在Java代码中直接创建和触发任务。这通常涉及到`Scheduler`和`JobDetail`对象的使用。`Scheduler`是Quartz的核心,...