`

整合spring与quartz的任务调用

 
阅读更多

quartz可以定时调用用户的任务,可以很好的管理用户的线程,而不用用户操心,用户只要定义好时间和要调用的方法就行。下面看一下如何配置:

 

第一种:调用某个类里面的方法

 

1 applicationContext.xml的配置

 

<!-- 定义要调用的任务的实现类 -->

 

<bean id="testQuartz" class="com.testQuartz">

 </bean>

<!--调用实现类里面的某个方法 -->

<bean id="testSayHello"   class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
     <property name="targetObject">
       <ref bean="testQuartz"/>
     </property>
     <property name="targetMethod">
       <value>sayHello</value>
     </property>
   </bean>

<!--定义调用任务的时间 -->
   <bean id="testSayTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
     <property name="jobDetail">
       <ref bean="testSayHello"/>
     </property>
     <property name="cronExpression">
       <value>0 0 9 * * ?</value>
     </property>
   </bean>

 

<!--管理触发器 -->

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  <property name="triggers">
   <list>

      <ref local="testSayTrigger"/>          
   </list>
  </property>
   </bean> 

2  testQuartz.java 类:

public class testQuartz {

  public String sayHello()
  {

     ..........//调用的方法

   }

}

 

第一种:继承QuartzJobBean类

1 applicationContext.xml的配置

<bean name="testQuartz"  class="org.springframework.scheduling.quartz.JobDetailBean">
     <property name="jobClass">
       <value>com.testQuartz</value>
  </property>
  <property name="jobDataAsMap">
       <map>

          <!--   spring 的依赖注入  -->
          <entry key="userServiceDAO"><ref local="userServiceDAO"/></entry>
         </map>
     </property>
  </bean>

 <!--定义调用的任务的时间 -->

  <bean id="testHelloTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
      <property name="jobDetail">
        <ref bean="testQuartz"/>
      </property>
      <property name="cronExpression">
        <value>0 35 16 * * ?</value>
      </property>
   </bean>

<!-- 触发器的管理-->

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  <property name="triggers">
   <list>

     <ref local="testHelloTrigger"/>          
   </list>
  </property>
   </bean> 

 

testQuartz.java

public class testQuartz extends QuartzJobBean {

private  UserServiceDAO userServiceDAO;
 /**

   
    */
 protected void executeInternal(JobExecutionContext jobExecutionContext)
   throws JobExecutionException {

    。。。。。。。。。。//调用的任务
       }

}

 

总结:

定义调用时间的格式:

 

Field Name    | Mandatory?    | Allowed Values | Allowed Special Characters


Seconds          |  YES |  0-59             |  , - * /


Minutes            |  YES        |  0-59           |  , - *
/


Hours            |  YES           |  0-23             |  , - * /


Day of month  |  YES         |  1-31           |  , - * ?
/ L W C


Month            |  YES           |  1-12 or JAN-DEC   |  , - * /

Day of week | YES | 1-7 or SUN-SAT | , - * ?
/ L C #


Year             |  NO        |  empty, 1970-2099  |  , - * /

至于详细的解释你一看例子就会明白

例子列表如下:
表达式 解释
0 0 12 * * ? 在每天中午12:00触发
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:00至2:59之间每分钟触发一次
0 0/5 14 * * ? 每天在下午2:00至2:59之间每5分钟触发一次
0 0/5 14,18 * * ? 每天在下午2:00至2:59和6:00至6:59之间的每5分钟触发一次
0 0-5 14 * * ? 每天在下午2:00至2:05之间每分钟触发一次
0 10,44 14 ? 3 WED 每三月份的星期三在下午2:00和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, 2003, 2004 and 2005年的每个月的最后一个星期五的上午10:15触发
0 15 10 ? * 6#3 在每个月的第三个星期五的上午10:15触发
0 0 12 1/5 * ? 从每月的第一天起每过5天的中午12:00时触发
0 11 11 11 11 ? 在每个11月11日的上午11:11时触发.

分享到:
评论

相关推荐

    spring整合quartz定时任务调度

    Spring框架作为Java领域广泛使用的轻量级框架,提供了与第三方库Quartz的整合,使得开发者能够轻松地在Spring应用中实现复杂的定时任务调度。Quartz是一款开源的作业调度框架,支持丰富的调度策略,可以满足各种定时...

    quartz整合springbatch动态集群定时实现mysql参考

    Quartz与Spring的集成使得在Spring应用中管理任务变得更加容易,可以利用Spring的依赖注入和生命周期管理。 Spring Batch是一个用于处理大量数据的批处理框架。它提供了诸如事务管理、错误处理、读写器和处理器抽象...

    spring+quartz 动态任务方案

    #### 一、Spring与Quartz简介及整合背景 Spring 是一款轻量级的 Java 开发框架,旨在简化企业级应用开发过程中的复杂性,提供了一套完整的解决方案,包括但不限于依赖注入、面向切面编程等功能。Quartz 则是一款...

    Spring整合quartz2.2.3总结,quartz动态定时任务,Quartz定时任务集群配置

    Spring整合Quartz 2.2.3是...总之,Spring与Quartz的整合使得我们能够便捷地在Spring应用中实现复杂的定时任务管理。通过深入理解Quartz的工作原理和Spring的整合机制,开发者可以更好地控制和扩展应用的定时任务功能。

    spring整合quartz定时任务

    整合Spring和Quartz后,你可以利用Spring的依赖注入和AOP特性,使定时任务更易于管理和维护。例如,通过注解方式注入Service或Repository,实现任务与业务逻辑的解耦。 总的来说,Spring整合Quartz为开发者提供了一...

    spring quartz 时间调用框架

    **Spring Quartz时间调用框架详解** Spring Quartz是一个在Spring框架中集成的时间调度插件,它允许开发者方便地创建和管理定时任务。Quartz是Java领域的一款功能强大的作业调度库,而Spring通过其优秀的IoC...

    spring整合quartz两种方式以及spring自带定时任务使用

    在本文中,我们将探讨Spring与Quartz的两种整合方式以及Spring自身提供的定时任务功能。 ### Spring整合Quartz的方式 #### 1. 配置驱动的方式 这种方式主要是通过XML配置来创建和管理Quartz的Scheduler实例。首先...

    spring3整合quartz1.8和spring3整合quartz2.2两个版本示例

    本示例将探讨如何将 Spring 3 与 Quartz 1.8 和 2.2 版本进行整合,以实现高效的任务调度。 首先,我们来看 Spring 3 整合 Quartz 1.8 的步骤: 1. **引入依赖**:在项目中添加 Quartz 和 Spring 相关的库,确保...

    spring整合quartz使用jdbc存储

    Spring整合Quartz是一款高效的任务调度框架,用于在Java应用程序中定时执行特定任务。Quartz本身支持多种持久化策略,包括使用数据库(JDBC)来存储作业和触发器信息,这使得任务调度信息在系统重启后仍能保留。下面...

    Springboot整合Quartz实现定时任务数据库动态配置

    Spring Boot作为一个轻量级的Java框架,提供了与各种定时任务库集成的能力,其中Quartz是一个广泛应用的开源作业调度框架。本篇文章将详细探讨如何在Spring Boot项目中整合Quartz,并通过MySQL数据库实现定时任务的...

    spring+quartz实现动态设置定时任务

    5. **监控与管理**:为了更好地管理和监控定时任务,可以利用Quartz提供的JMX支持,或者使用第三方的监控工具,如Spring Boot Actuator,实时查看任务状态和执行情况。 6. **心得分享**:在实践中,要注意任务的...

    spring的quartz使用实例

    Spring整合Quartz是一款常见的任务调度解决方案,它允许开发者在应用程序中安排定时任务的执行。Quartz是一个开源的作业调度框架,而Spring通过提供一个简洁的API使得与Quartz的集成变得简单。以下是对Spring整合...

    Quartz与Spring整合练习源代码

    将Quartz与Spring整合,可以方便地管理和控制定时任务,同时利用Spring的依赖注入和管理功能,提高代码的可维护性和可测试性。 Quartz的核心概念包括Job、Trigger和Scheduler。Job是实际需要执行的任务,Trigger是...

    spring_quartz_定时任务

    《Spring与Quartz实现定时任务详解》 在Java开发中,定时任务的处理是一项重要的功能,它能够按照预设的时间规律自动执行特定的任务,比如数据同步、报表生成等。Spring框架,作为Java企业级应用的基石,提供了丰富...

    spring quartz 集群模式

    Quartz是一个开源任务调度框架,而Spring则提供了与Quartz的无缝集成,使得在Java应用中管理和执行定时任务变得更加方便。在集群环境中,多个Quartz节点可以协同工作,确保任务的高可用性和容错性。 首先,理解...

    java中spring与Quartz 整合定时任务.docx

    在Java开发中,Spring框架和Quartz库的整合是实现定时任务的常见方法。Spring提供了对Quartz的集成,使得我们可以方便地在Spring应用上下文中配置和管理定时任务。下面将详细解释如何在Spring中整合Quartz以及相关的...

    spring整合quartz定时发送邮件

    Spring 整合 Quartz 定时发送邮件是一种常见的任务调度场景,用于定期执行如发送通知、报告等操作。Quartz 是一个开源的作业调度框架,它允许开发者创建、调度和管理任务。而Spring作为一个强大的企业级应用开发框架...

    spring + Quartz 定时任务

    Spring提供了`MethodInvokingJobDetailFactoryBean`,可以直接调用某个bean的方法作为定时任务。这样可以将业务逻辑封装在单独的bean中,更符合Spring的设计原则。 **文件依赖** 在提供的文件列表中,`commons-...

    spring3.1 与 quartz 1.8.6 整合 所有jar

    "spring3.1 与 quartz 1.8.6 整合的所有jar"可能包含以下关键依赖:Spring的核心库、AOP库、Context库以及Quartz的jar包。 2. **配置Spring** 在Spring配置文件中,需要定义一个`SchedulerFactoryBean`,这将是...

Global site tag (gtag.js) - Google Analytics