`

spring quartz 定时器

 
阅读更多

转自:http://hacker-zxf.iteye.com/blog/296554

首先建立bean.xml文件: 

Java代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">  
  3. <beans>  
  4.     <!--起动Bean-->  
  5.     <bean id="test"  
  6.         class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
  7.         <property name="triggers">  
  8.             <list>  
  9.                 <ref bean="cronReportTrigger" />  
  10.             </list>  
  11.         </property>  
  12.     </bean>  
  13.     <!--实际的工作Bean-->  
  14.     <bean id="testjobbean"  
  15.         class="com.zhouxf.quartz.TestJobBean">  
  16.     </bean>  
  17.     <!--jobBean用于设定启动时运用的Bean与方法-->  
  18.     <bean id="scheduledReportJobDetail"  
  19.         class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
  20.         <property name="targetObject">  
  21.             <ref bean="testjobbean" />  
  22.         </property>  
  23.         <property name="targetMethod">  
  24.             <value>run</value>  
  25.         </property>  
  26.     </bean>  
  27.     <!--定时器设定(0/2 43 12-17 * * ?在121743分,每隔2秒运行一次)-->  
  28.     <bean id="cronReportTrigger"  
  29.         class="org.springframework.scheduling.quartz.CronTriggerBean">  
  30.         <property name="jobDetail">  
  31.             <ref bean="scheduledReportJobDetail" />  
  32.         </property>  
  33.         <property name="cronExpression">  
  34.             <value>0/2 43 12-17 * * ?</value>  
  35.         </property>  
  36.     </bean>  
  37.   
  38. </beans>  




JOB代码: 

Java代码   收藏代码
  1. public class TestJobBean{  
  2.   
  3.     public void run() {  
  4.         System.out.println("run..................");  
  5.     }  
  6. }  



测试代码: 

Java代码   收藏代码
  1. public static void main(String[] args) throws BeansException, FileNotFoundException, InterruptedException {  
  2.        // new LogInit("WEB-INF/classes/com/spring/helloworld/log4j.properties");  
  3.        BeanFactory factory = new XmlBeanFactory(  
  4.                                                 new FileSystemResource(  
  5.                                                                        "///home/zhouxf/work/WebPro/WebContent/WEB-INF/bean.xml"));  
  6.        factory.getBean("test");  
  7.   
  8.    }  




还有另一种配置方式,使用QuartzJobBean,它是JobDetailBean的子类,代码如下: 

Java代码   收藏代码
  1. import org.quartz.JobExecutionContext;  
  2. import org.quartz.JobExecutionException;  
  3. import org.springframework.scheduling.quartz.QuartzJobBean;  
  4.   
  5. public class TestJobBean extends QuartzJobBean {  
  6.   
  7.     @Override  
  8.     protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException {  
  9.         // TODO Auto-generated method stub  
  10.         System.out.println("TestJobBean..run................");  
  11.     }  
  12.   
  13. }  




Java代码   收藏代码
  1. 配置文件中加入:  
  2. <bean id="reportJob"   
  3.        class="org.springframework.scheduling.quartz.JobDetailBean">   
  4.     <property name="jobClass">   
  5.       <value>com.zhouxf.quartz.TestJobBean</value>   
  6.     </property>    
  7.   </bean>   
  8.     
  9.     <!--定时器设定(0/2 43 12-17 * * ?在121743分,每隔2秒运行一次)-->  
  10.     <bean id="cronReportTrigger2"  
  11.         class="org.springframework.scheduling.quartz.CronTriggerBean">  
  12.         <property name="jobDetail">  
  13.             <ref bean="reportJob" />  
  14.         </property>  
  15.         <property name="cronExpression">  
  16.             <value>0/1 31 12-17 * * ?</value>  
  17.         </property>  
  18.     </bean>  




测试代码改为: 

Java代码   收藏代码
  1. public static void main(String[] args) throws BeansException, FileNotFoundException, InterruptedException {  
  2.         // new LogInit("WEB-INF/classes/com/spring/helloworld/log4j.properties");  
  3.         BeanFactory factory = new XmlBeanFactory(  
  4.                                                  new FileSystemResource(  
  5.                                                                         "///home/zhouxf/work/WebPro/WebContent/WEB-INF/bean.xml"));  
  6.         factory.getBean("test");  
  7.         factory.getBean("test2  
  8.     }  





默认情况下,Quartz Jobs是无状态的,可能导致jobs之间互相的影响。如果你为相同的JobDetail指定两个Trigger, 很可能当第一个job完成之前,第二个job就开始了。如果JobDetail对象实现了Stateful接口,就不会发生这样的事情。 第二个job将不会在第一个job完成之前开始。为了使得jobs不并发运行,设置MethodInvokingJobDetailFactoryBean中的concurrent标记为false。 

Java代码   收藏代码
  1. <bean id="scheduledReportJobDetail"  
  2.         class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
  3.         <property name="targetObject">  
  4.             <ref bean="simpleJob" />  
  5.         </property>  
  6.         <property name="targetMethod">  
  7.             <value>run</value>  
  8.         </property>  
  9.         <property name="concurrent" value="false" />  
  10. </bean>  


但是第二种方式的,没办法设置这个属性,暂时还不知道怎么去设置这个属性。

分享到:
评论

相关推荐

    Spring Quartz 定时器示例(Web工程版)

    Spring Quartz 定时器示例(Web工程版),欢迎下载。

    Spring Quartz定时器的jar包

    Spring Quartz定时器是Java开发中常用的一个任务调度框架,它结合了Spring框架的强大功能与Quartz的灵活性,使得开发者能够方便地在应用中实现定时任务。在这个压缩包中,包含了三个核心的jar文件:`quartz-all-...

    Spring Quartz定时器

    Spring Quartz定时器 Spring Quartz定时器 Spring Quartz定时器 Spring Quartz定时器

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

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

    简单实现Spring Quartz定时器

    Spring Quartz定时器是一种在Java应用中实现定时任务的流行框架,它允许开发者精确地调度任务执行。本篇文章将深入探讨如何在Spring框架中简单实现Quartz定时器,并结合源码和工具来帮助理解其工作原理。 首先,让...

    spring quartz定时器的简单配置和使用

    本文将详细介绍如何在Spring项目中集成Quartz定时器,并通过一个简单的示例来进行演示。 #### 一、环境准备 为了能够顺利地运行示例代码,我们需要准备以下必要的依赖库: - `jta-1.1.jar`:用于事务管理。 - `...

    Spring Quartz 定时器示例(Java工程版)

    Spring Quartz 是一个强大的任务调度框架,它允许开发者在Java应用程序中定义定时任务。这个示例提供了在Spring框架中集成Quartz的详细步骤,适合Java工程的实现。下面将详细介绍Spring与Quartz结合使用的相关知识点...

    Spring Quartz 定时器

    这篇博客“Spring Quartz 定时器”很可能是探讨如何将Quartz集成到Spring应用中,以便利用其强大的定时任务功能。 首先,我们来看一下Spring与Quartz的结合。Spring通过`org.springframework.scheduling.quartz`包...

    spring quartz定时器支持的jar包

    在Spring中集成Quartz,首先需要在项目的类路径下添加这三个jar包,然后通过Spring的配置文件来声明Quartz的相关bean。你可以定义`SchedulerFactoryBean`来创建调度器,`JobDetailBean`来定义作业,以及`...

    SpringQuartz定时器的配置[参照].pdf

    然后,配置Spring的XML文件来设置定时器。在配置中,你需要定义`JobDetailBean`来指定任务类,并通过`CronTriggerBean`来设定调度规则。例如: ```xml &lt;bean name="userTimelineQuartz" class="org.springframework...

    SpringQuartz定时器的配置[归类].pdf

    Spring Quartz 是一个集成Quartz定时任务框架的Spring模块,它为开发者提供了在Spring环境中便捷配置和管理定时任务的能力。Quartz作为一个强大且功能丰富的任务调度框架,能够灵活地定义任务的执行时间表,并且可以...

    定时器的配置文件(两种方式:springmvc自带定时,Quartz与spring结合的定时)

    本篇文章将详细讲解两种在Spring MVC框架中实现定时任务的方法:Spring MVC自带的定时器以及Quartz与Spring的集成。 首先,我们来看看Spring MVC自带的定时任务。Spring MVC作为Spring框架的一个模块,主要处理HTTP...

    Spring-quartz实现定时器(含代码)

    本文将深入探讨如何使用Spring整合Quartz来实现定时器,并提供相关代码示例。 首先,理解Spring框架。Spring是一个开源的Java平台,它提供了全面的企业级应用程序开发解决方案,包括依赖注入(DI)、面向切面编程...

    java Spring OpenSymphony的Quartz定时器的时间设置

    在Java Spring框架中,开发者有多种选择来实现定时任务的功能,其中最为流行的两种方式分别是使用Java自带的`Timer`类以及OpenSymphony的Quartz定时器。本文将重点探讨Quartz定时器的配置与使用,尤其是其时间设置的...

    使用spring的quartz定时器要用到的jar包

    首先,要使用Spring的Quartz定时器,你需要确保引入了以下核心的jar包: 1. `quartz.jar`:这是Quartz的核心库,包含了Quartz的调度器、作业、触发器等核心组件。 2. `spring-context-support.jar`:Spring框架提供...

    spring boot集成quartz定时器

    本文将详细讲解如何在Spring Boot项目中集成Quartz定时器,以及如何利用Spring的依赖注入特性来实现Job。 一、集成Quartz定时器 1. 添加依赖:首先,你需要在Spring Boot项目的`pom.xml`或`build.gradle`文件中...

    quartz定时器源码jar包下载

    作为一个专业的IT行业大师,我很高兴为你解析Quartz定时器的核心概念、功能以及如何通过源码学习。 Quartz定时器允许开发者创建、调度和管理任务,这些任务可以是简单的函数调用或者复杂的业务流程。它支持多种调度...

    spring之quartz定时器

    《Spring与Quartz定时器深度解析》 在Java开发领域,Spring框架因其强大的功能和灵活性而备受推崇。其中,Spring对任务调度的支持是其一大亮点,尤其与Quartz的集成,使得开发者能够方便地实现定时任务。Quartz是一...

    spring java 定时器 执行两次 quartz

    在Spring应用中添加Quartz支持,你需要在`pom.xml`或`build.gradle`文件中引入Quartz的依赖,比如`quartz-all.jar`。接着,在Spring的配置文件(如`applicationContext.xml`)中,定义一个`SchedulerFactoryBean`来...

    spring和quartz的定时器的启动和停止例子

    本篇将深入探讨如何在Spring中启动和停止Quartz定时器。 首先,我们需要理解Spring和Quartz的基本概念。Spring是一个强大的Java企业级应用开发框架,它提供了依赖注入(DI)和面向切面编程(AOP)等核心特性。而...

Global site tag (gtag.js) - Google Analytics