`

Spring的定时调度--Quartz

阅读更多

     Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz,Spring中的Quartz的使用方法。

1.所需类库

spring-framework-2.5.6\dist\spring.jar
spring-framework-2.5.6\lib\quartz\quartz-all-1.6.1.jar
spring-framework-2.5.6\lib\jakarta-commons\commons-logging.jar
spring-framework-2.5.6\lib\jakarta-commons\commons-collections.jar
spring-framework-2.5.6\lib\log4j\log4j-1.2.15.jar

 注:log4j-1.2.15.jar为日志类库,删除不会出错

2.定时调度类

    这里写了个测试例子,代码如下:

package com.taoistwar.spring.quartz;

import java.util.Date;

public class TestQuartz {
	public void test() {
		System.out.println(new Date() + "调用");
	}
}

 

 3.Spring配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
	<bean id="testQuartz" class="com.taoistwar.spring.quartz.TestQuartz" />
	<!-- bean触发方法配置 -->
	<bean name="quartzBean"
		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<!-- bean名字 -->
		<property name="targetObject" ref="testQuartz" />
		<!-- bean方法 -->
		<property name="targetMethod">
			<value>test</value>
		</property>
		<property name="concurrent">
			<value>false</value>
		</property>
	</bean>
	<!-- bean触发时间配置 -->
	<bean id="quartzTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<!-- 触发bean配置 -->
		<property name="jobDetail">
			<ref bean="quartzBean" />
		</property>
		<!-- 触发时间配置 -->
		<property name="cronExpression">
			<value>0 0/1 * * * ?</value>
		</property>
	</bean>

	<!-- quartz触发器管理 -->
	<bean id="sfb"
		class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<!-- 添加触发器 -->
		<property name="triggers">
			<list>
				<ref local="quartzTrigger" />
			</list>
		</property>
	</bean>
</beans>

 4.应用程序测试

        经过已上配置已经成功,现需要进行测试,测试分为应用程序测试和web程序测试,本部进行应用程序测试。测试代码如下:

package com.taoistwar.spring.quartz;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SpringMain {

	public static void main(String[] args) {
		System.out.println("---开始初始化--- ");
		ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
		System.out.println("---完成初始化---");
               // 死循环,查看定时调度情况,本例调度为每分钟一次
		while (true) {
			
		}
	}

}

 5.web程序测试

    在web.xml中配置spring,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

  	<!-- spring -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:applicationContext.xml</param-value>
	</context-param>
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>

 6.附件备注

        Quartz.rar为源码。

        Quartz.war.rar为发布在JBoss下的war包,若在Tomcat下则把Quartz.war改为Quartz即可。

 

附表:
"0 0 12 * * ?" 每天中午12点触发
"0 15 10 ? * *" 每天上午10:15触发
"0 15 10 * * ?" 每天上午10:15触发
"0 15 10 * * ? *" 每天上午10:15触发
"0 15 10 * * ? 2005" 2005年的每天上午10:15触发
"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发
"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发
"0 15 10 15 * ?" 每月15日上午10:15触发
"0 15 10 L * ?" 每月最后一日的上午10:15触发
"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发

至于每个符号 看看例子就好了.很简单了.

 

 

分享到:
评论
2 楼 wdq 2010-06-18  
嗯,很实用的东西!多谢了!!!!
1 楼 fuyanqing03 2010-01-18  
谢谢共享。

相关推荐

    spring-context-support-4.2.2和quartz-2.2.3所需Jar包

    标题中的"spring-context-support-4.2.2和quartz-2.2.3所需Jar包"涉及到两个关键的Java库:Spring Context Support 4.2.2版本和Quartz Scheduler 2.2.3版本。这两个库在企业级Java应用开发中扮演着重要角色,特别是...

    spring-boot-Quartz-1.zip

    Quartz是一个开源的作业调度框架,它可以安排和执行基于时间的任务,而SpringBoot则提供了简化Java应用开发的便利性。本案例中,我们将深入探讨如何在SpringBoot应用中集成Quartz定时任务框架,以及如何配置和运行每...

    spring整合quartz动态定时任务demo-spring-quartz-demo.zip

    这个"spring-quartz-demo"项目就是一个很好的示例,它展示了如何在Spring中整合Quartz以实现动态定时任务。 首先,我们要了解Spring和Quartz的基本概念。Spring是一个全面的Java企业级应用开发框架,它提供了依赖...

    spring-context-support.jar,quartz-all-1.6.0.jar

    总结起来,`spring-context-support.jar`和`quartz-all-1.6.0.jar`的组合使用,为我们提供了强大的定时任务管理功能,结合Spring的bean管理和Quartz的调度能力,使得在Java应用中实现复杂任务调度变得轻而易举。...

    定时调度-Spring集成Quartz

    通过Spring集成Quartz,开发者可以方便地在Java应用中实现复杂的定时任务调度。理解Quartz的核心组件、配置方式以及如何与Spring协作,是成功部署和维护定时任务的关键。同时,合理利用CronTrigger的灵活性,可以...

    spring--quartz的定时调度的maven部署

    本篇将详细探讨如何在Spring中结合Quartz进行定时调度,并通过Maven进行项目部署。 首先,我们要理解Spring与Quartz的集成原理。Spring提供了一个名为`org.springframework.scheduling.quartz`的包,该包包含了对...

    spring-quartz-021

    总结起来,"spring-quartz-021"是一个学习和实践Spring与Quartz集成的实例,它展示了如何利用Spring的管理能力,配合Quartz的强大调度功能,实现基于corn表达式的定时任务。对于Java开发者来说,掌握这种集成方式能...

    quartz和spring-quartz

    Quartz和Spring-Quartz是两个在Java世界...“spring-quartz-demo”可能是一个完整的示例项目,你可以通过运行它来深入理解Quartz在Spring中的应用。通过研究这些资源,你可以更全面地掌握Quartz和Spring-Quartz的用法。

    spring-context-support-4.2.2.RELEASE.jar 的jar包

    1. **任务调度支持**: `spring-context-support`包含了对Quartz和Commons JEXL的支持,允许开发者在Spring容器中配置和管理定时任务。例如,你可以通过XML配置或者使用`@Scheduled`注解来定义周期性执行的任务,这...

    spring-quartz-example

    本文将通过一个名为"spring-quartz-example"的示例项目,深入讲解如何利用Spring和Quartz来实现定时任务。 首先,我们需要理解Spring与Quartz的基本概念。Spring是一个开源的Java平台,它提供了一种模块化的方式来...

    spring-quartz-02

    总的来说,"spring-quartz-02" 这个 demo 提供了一个完整的示例,演示了如何在 Spring 环境下利用 Quartz 创建并管理定时任务,使用 Cron 表达式进行灵活的调度。这对于任何需要在 Java 应用中实现定时功能的开发者...

    spring-context-support.jar

    spring-context-support.jar spring整合任务调度quartz必需jar 还需要quartz-all-x.x.x.jar quartz版本必需在1.8.x以下

    spring-boot-quartz

    Quartz 是一个开源的作业调度框架,常被用来执行定时任务。当我们结合 Spring Boot 和 Quartz,我们可以构建一个强大的定时任务管理系统,这在许多业务场景中非常有用,比如数据清理、报告生成、定期发送邮件等。 ...

    spring-quartz-03

    本示例"spring-quartz-03"就是将Spring与Quartz相结合,实现定时任务的管理和执行。 **1. Spring与Quartz集成** Spring通过`org.springframework.scheduling.quartz`包提供了对Quartz的全面支持。在项目中引入...

    spring-quartz-01

    在 "spring-quartz-01" 这个项目中,开发者已经集成 Spring 和 Quartz,创建了一个可以定时执行任务的示例。这通常涉及到以下几个关键知识点: 1. **Spring 集成 Quartz**:首先,我们需要在 Spring 的配置文件中...

    Spring中的Quartz配置-Spring-定时器-java定时器.doc

    在 Spring 框架中,Quartz 是一个非常流行的开源作业调度器,可以实现任务的定时执行。在本篇文章中,我们将讨论如何在 Spring 中配置 Quartz,以实现 Java 定时器的功能。 Quartz 介绍 Quartz 是一个开源的作业...

    Spring quartz定时调度jar包

    Spring Quartz 定时调度是Java应用中广泛使用的任务调度框架,它允许开发者在Spring应用程序上下文中定义和管理定时任务。这个jar包包含了Spring与Quartz的整合,使得开发者能够利用Quartz的强大功能,同时享受...

    spring3.0+quartz-1.6.0定时

    总结起来,"spring3.0+quartz-1.6.0定时"的实现涉及到Spring框架的定时任务支持和Quartz库的结合使用,通过Spring的配置管理Quartz调度器,定义任务和触发器,最后编写具体任务逻辑的Java类。这种组合在实际项目中...

    spring-boot-starter-validation-1.3.5.RELEASE.zip

    它们可以基于各种技术实现,如Redis的延时队列、Quartz或Spring Task等。 为了深入了解这些概念,你可以阅读Spring Boot和Bean Validation的官方文档,探索odelay项目的源码,以及研究延时队列和定时任务的实现原理...

Global site tag (gtag.js) - Google Analytics