`
maoxy
  • 浏览: 141313 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

定时调度-Spring集成Quartz

阅读更多

定时调度就是设定时间规则,系统按照规则调用设定的功能函数。

这个是我在项目中碰到的,大家用得到的就看看

有不足之处还请大家指出!

不用谢!


(1)项目得添加Spring框架


(2)导入Quartz需要使用的jar包,总共是四个

quartz-1.6.0.jar

spring-2.0.6.jar

commons-collections.jar

jta.jar


(3) web.xml中添加以下代码,该代码是对spring文件的引用,我这里功能简单,所以直接使用applicationContext.xml。大家如果项目复杂的话,可以自己在定义一个spring文件,只要引用到web.xml就可以了。

  <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value> 
      /WEB-INF/applicationContext.xml
  </param-value>
 </context-param>

(4)配置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: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.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">

	<!--  要调用的工作类 -->
	<bean id="quartzForTest" class="com.gl.mtt.Quartz.QuartzForTest" />
	
	<!-- 定义调用对象和调用对象的方法 -->
	<bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" >
	   <!-- 调用的类  -->
	   <property name="targetObject">
	     <ref bean="quartzForTest"/>
	   </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表达式0 0/15 * * * ? 每15分钟执行一次 ; 0 46 11 * * ? 11点46执行一次; 0 0 2 * * ?每天两点执行;-->
      <property name="cronExpression">
       <value>0/2 * * * * ?</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>

 

 

 

 

 

这个是新建的spring文件,我建议,如果系统功能多的话,就单独用一个spring来配置。


(5)在项目中建立相应的类和功能函数

 

public class QuartzForTest {	
	public void work(){		
		System.out.println("test");
	}
}

 

 

 

(6)完成!

ps:spring cron表达式

Cron表达式是一个字符串,字符串以56个空格隔开,分开工67个域,每一个域代表一个含义,Cron有如下两种语法

格式: 
Seconds Minutes Hours DayofMonth Month DayofWeek Year 
 
Seconds Minutes Hours DayofMonth Month DayofWeek 
每一个域可出现的字符如下:
 
 
Seconds:可出现,-  *  / 四个字符,有效范围为0-59的整数
   
Minutes:
可出现,-  *  / 四个字符,有效范围为0-59的整数
   
Hours:
可出现,-  *  / 四个字符,有效范围为0-23的整数
   
DayofMonth:
可出现,-  *  / ? L W C八个字符,有效范围为0-31的整数
    
Month:
可出现,-  *  / 四个字符,有效范围为1-12的整数或
JAN-DEc   
DayofWeek:
可出现,-  *  / ? L C #四个字符,有效范围为1-7的整数或SUN-SAT两个范围。1表示星期天,2表示星期一, 依次类推
   
Year:
可出现,-  *  / 四个字符,有效范围为1970-2099
  

举例:

0 0 10,14,16 * * ? 每天上午10点,下午2点,4 
0 0/30 9-17 * * ?   
朝九晚五工作时间内每半小时
 
0 0 12 ? * WED 
表示每个星期三中午12
 
"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:102: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触发 


pps:打完收工!

ppps:我上传了一个项目包,可以直接使用的,jar包也在里面。

再见!


 

 

1
1
分享到:
评论
1 楼 lkfnn 2011-06-24  
好东西,讲的真明白。

相关推荐

    Spring的定时调度--Quartz

    1. **依赖引入**:在Spring项目中,首先需要在pom.xml或build.gradle文件中添加Quartz和Spring的 quartz-spring 依赖。 2. **配置Quartz**:创建quartz.properties文件,配置Quartz的工作环境,如数据库连接、...

    cs端的java-spring-quartz框架

    Java-Spring-Quartz框架是企业级应用开发中常见的组合,尤其在服务器端(CS,Client-Server)程序中,用于实现复杂的工作调度任务。Spring框架是Java领域的一个全能型框架,提供了依赖注入、面向切面编程、数据访问...

    spring-boot-Quartz-1.zip

    本案例中,我们将深入探讨如何在SpringBoot应用中集成Quartz定时任务框架,以及如何配置和运行每20秒执行一次的任务。 首先,我们需要在项目中添加Quartz的依赖。在SpringBoot应用的`pom.xml`或`build.gradle`文件...

    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应用开发中扮演着重要角色,特别是...

    11-Spring+Quartz定时任务最简集群版1

    在Spring中集成Quartz,通常会通过`SchedulerFactoryBean`来创建和配置调度器,并将任务以Spring Bean的形式定义,利用Spring的依赖注入和AOP特性。 在集群环境下,Quartz通常采用共享的JobStore来存储任务和触发器...

    Multiple-Jobs-in-Quartz-Spring-Example

    本示例 "Multiple-Jobs-in-Quartz-Spring-Example" 旨在展示如何在 Spring 应用中集成多个 Quartz 任务。对于Java开发人员来说,这可能是了解如何在实际项目中使用这两种技术协同工作的一个绝佳实践。 首先,我们...

    spring-boot-quartz

    Spring Boot 是一个流行的 Java 框架,用于简化Spring应用程序的初始设置和配置。...通过上述步骤,你已经掌握了在Spring Boot应用中集成和使用Quartz的基本知识,可以开始创建和管理自己的定时任务了。

    quartz和spring-quartz

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

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

    Quartz 可以与 Spring 框架集成,以实现任务的定时执行。 Spring 中的 Quartz 配置 在 Spring 中,Quartz 的配置主要通过 XML 文件来实现。我们可以在 Spring 的配置文件中定义 Quartz 的 bean,以便实现任务的...

    spring-boot使用quartz框架定时发送邮件

    在这个场景中,我们将讨论如何在Spring Boot中集成Quartz框架来实现定时发送邮件的功能,以及如何从数据库中读取数据生成报表。 首先,我们需要在Spring Boot项目中引入Quartz的相关依赖。在`pom.xml`或`build....

    springboot2.3集成quartz定时任务持久化数据库,支持集群

    在本文中,我们将深入探讨如何在Spring Boot 2.3版本中集成Quartz定时任务,并实现其持久化到数据库,以便支持集群环境。这个过程的关键在于配置Quartz Scheduler,设置数据库连接,以及确保任务在多节点环境中能够...

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

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

    spring集成quartz 任务调度

    Spring集成Quartz是一款高效的任务调度框架,用于在Java应用程序中执行计划、周期性的任务。Quartz与Spring的结合,使得我们可以充分利用Spring的依赖注入(DI)和AOP特性,简化了任务调度的复杂性。 首先,Quartz...

    spring-quartz定时设置详细说明

    &lt;groupId&gt;org.quartz-scheduler &lt;artifactId&gt;quartz &lt;groupId&gt;org.springframework &lt;artifactId&gt;spring-context-support ``` 2. 配置 Quartz:在 Spring 的配置文件(如 `application.properties` 或 `...

    spring 集成quartz 用数据库实现quartz的集群

    【Spring集成Quartz定时任务与数据库实现集群详解】 在企业级应用中,定时任务的管理是必不可少的一部分,Spring框架提供了与Quartz的集成,使得我们可以方便地创建和管理定时任务。Quartz是一款强大的、开放源代码...

    Spring集成Quartz调度框架.pdf

    ### Spring集成Quartz调度框架详解 #### 一、Quartz调度框架概述 Quartz是一个开源的、成熟的作业调度框架,其主要目标是在Java应用程序中提供简单而强大的作业调度能力。Quartz支持作业按时间间隔(如每天、每周...

    quartz-spring-demo

    通过 "quartz-spring-demo",开发者可以快速理解如何在 Spring 应用程序中集成和使用 Quartz,从而实现灵活的定时任务调度。这个简单的演示项目是一个学习和实践 Quartz 和 Spring 整合的好起点。

    spring整合quartz定时任务调度

    2. **配置Quartz**:在Spring的配置文件(如applicationContext.xml)中,声明Quartz的相关bean,包括`SchedulerFactoryBean`,它是Quartz与Spring集成的关键: ```xml &lt;bean id="schedulerFactoryBean" class="org....

    spring集成quartz所需文件

    标题 "spring集成quartz所需文件" 指的是将 Spring 框架与 Quartz 进行整合,以利用 Quartz 的定时任务功能。这种集成使得开发者可以在 Spring 环境下方便地管理调度任务,实现灵活的定时任务逻辑。 在描述中提到 ...

Global site tag (gtag.js) - Google Analytics