`

实现定时任务的Quartz结构

阅读更多

以下为我个人的总结:

 

 

  • 调度器下可以有多个触发器,即多个定时任务
  • 触发器主管时间设置
  • 工作任务主管工作类和工作方法
  • 工作类路径指明工作类路径

 

以下为参考:【参考来源:http://www.oschina.net/question/8676_9032  感谢这位作者

1、Scheduler的配置

 

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
       <property name="triggers">  
           <list>  
              <ref bean="testTrigger"/>  
           </list>  
       </property>  
       <property name="autoStartup" value="true"/>  
</bean>  

<!--StartFragment-->    说明:Scheduler包含一个Trigger列表,每个Trigger表示一个作业。

 

2、Trigger的配置

 

<bean id="testTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">  
       <property name="jobDetail" ref="testJobDetail"/>  
       <property name="cronExpression" value="*/1 * * * * ?"/><!-- 每隔1秒钟触发一次 -->  
</bean>  

    说明:

 

         1)Cron表达式的格式:秒 分 时 日 月 周 年(可选)。

               字段名                 允许的值                        允许的特殊字符  

               秒                         0-59                               , - * /  

               分                         0-59                               , - * /  

               小时                   0-23                               , - * /  

               日                         1-31                               , - * ? / L W C  

               月                         1-12 or JAN-DEC          , - * /  

               周几                     1-7 or SUN-SAT            , - * ? / L C #  

               年 (可选字段)     empty, 1970-2099      , - * /

               “?”字符:表示不确定的值

               “,”字符:指定数个值

               “-”字符:指定一个值的范围

               “/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m

               “L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X

               “W”字符:指定离给定日期最近的工作日(周一到周五)

               “#”字符:表示该月第几个周X。6#3表示该月第3个周五

         2)Cron表达式范例:

                 每隔5秒执行一次:*/5 * * * * ?

                 每隔1分钟执行一次:0 */1 * * * ?

                 每天23点执行一次:0 0 23 * * ?

                 每天凌晨1点执行一次:0 0 1 * * ?

                 每月1号凌晨1点执行一次:0 0 1 1 * ?

                 每月最后一天23点执行一次:0 0 23 L * ?

                 每周星期天凌晨1点实行一次:0 0 1 ? * L

                 在26分、29分、33分执行一次:0 26,29,33 * * * ?

                 每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?

3、JobDetail的配置

 

<bean id="testJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">   
        <property name="targetObject" ref="testJob"/>  
        <property name="targetMethod" value="execute"/>  
        <property name="concurrent" value="false"/>
        <!-- 是否允许任务并发执行。当值为false时,表示必须等到前一个线程处理完毕后才再启一个新的线程 -->  
</bean>  

4、业务类的配置

 

<bean id="testJob" class="com.cjm.web.service.quartz.TestJob"/>  

5、业务类源代码

 

public class TestJob {  
    public void execute(){  
        try{  
              //.......
         }catch(Exception ex){  
             ex.printStackTrace();  
         }  
     }  
}  

    说明:业务类不需要继承任何父类,也不需要实现任何接口,只是一个普通的java类。

 

注意:

     在Spring配置和Quartz集成内容时,有两点需要注意

           1、在<Beans>中不能够设置default-lazy-init="true",否则定时任务不触发,如果不明确指明default-lazy-init的值,默认是false。

           2、在<Beans>中不能够设置default-autowire="byName"的属性,否则后台会报org.springframework.beans.factory.BeanCreationException错误,这样就不能通过Bean名称自动注入,必须通过明确引用注入

 

 <!--EndFragment-->

  • 大小: 31.6 KB
3
0
分享到:
评论

相关推荐

    ssm集成quartz完成定时任务

    SSM(Spring、SpringMVC、MyBatis)框架与Quartz的集成是Java开发中常见的一种实现定时任务的方法。Quartz是一个强大的开源作业调度框架,可以用来执行定时任务,而SSM作为主流的Java Web开发框架,为业务逻辑处理...

    Quartz定时任务常用的11张数据库脚本表结构

    这里我们将详细探讨Quartz定时任务在数据库中的11张核心表结构。 1. **QRTZ_JOB_DETAILS**:此表存储所有Job的详细信息,如Job类名、Job数据映射等。每个Job实例在此表中对应一条记录,Job的唯一标识由`SCHED_NAME`...

    C# Quartz.Net定时任务操作明细、完整过程

    【C# Quartz.Net定时任务操作】Quartz.Net是一款强大的任务调度框架,广泛应用于C#环境下的定时任务管理。本文将详细介绍如何使用Quartz.Net进行定时任务的配置与执行。 首先,**通过Nuget安装框架**非常简单,只需...

    Java使用quartz实现任务调度定时任务

    `quartz_job.sql`文件可能包含Quartz所需的数据库表结构,Quartz使用数据库来存储Job和Trigger的信息,以便在系统重启后仍能恢复之前设置的任务。你需要根据自己的数据库类型(如MySQL、Oracle等)对这个SQL脚本进行...

    spring+quartz实现定时任务动态管理

    本项目旨在实现对Quartz定时任务的动态管理,包括添加、停止和恢复等操作。前端采用jQuery和Bootstrap构建,提供用户友好的可视化界面,同时应用了MyBatis分页插件来优化数据查询性能。 首先,让我们详细了解一下...

    quartz 动态执行定时任务

    Quartz 是一个开源的作业调度框架,能够帮助开发者轻松地在 Java 应用程序中实现各种复杂的定时任务。它支持触发器(Trigger)、日历(Calendar)等功能,具有强大的扩展性和灵活性。 #### Quartz 动态定时任务原理...

    Quartz定时任务表达式

    通过理解和掌握Cron表达式的语法和特性,开发者可以轻松实现复杂多变的定时任务需求,从而提升应用的自动化程度和效率。无论是日常的系统维护还是业务逻辑处理,Quartz都能提供稳定可靠的解决方案。

    定时任务完整案例 Java quartz

    【标题】"定时任务完整案例 Java quartz" 涉及的核心技术是Java的调度库Quartz,它是一个开源的工作调度框架,广泛应用于企业级应用中,用于执行定时任务。Quartz能够帮助开发者创建、调度和执行任务,实现高度灵活...

    SpringBoot集成Quartz分布式定时任务

    本篇文章将详细探讨如何在SpringBoot项目中集成Quartz实现分布式定时任务。 Quartz是一个开源的作业调度框架,它允许开发者定义定时任务并按计划执行。Quartz的核心概念包括Job(任务)、Trigger(触发器)和...

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

    Spring整合Quartz 2.2.3是Java开发者在实现定时任务时常用的一种技术组合。Quartz是一款开源的作业调度框架,它允许程序在特定时间执行预定的任务,而Spring则是一个强大的企业级应用开发框架,提供了丰富的依赖注入...

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

    Spring和Quartz是两个强大的工具,可以协同工作来实现动态管理的定时任务。本文将深入探讨如何利用Spring框架和Quartz库创建和管理这些任务。 **Spring框架** 是一个广泛应用的Java企业级开发框架,它提供了丰富的...

    Quartz定时任务持久化数据表

    Quartz是一款开源的作业调度框架,它允许开发者创建、组织和执行定时任务。在Java应用中,Quartz常被用来实现后台任务的自动化,比如定时发送邮件、数据备份等。在分布式环境中,Quartz还支持集群,确保任务的高可用...

    java动态管理定时任务

    要实现"spring+quartz整合,动态管理定时任务",首先需要在项目中引入Spring和Quartz的相关依赖。在Maven或Gradle的pom.xml或build.gradle文件中添加对应库的依赖。然后,我们需要配置Spring的ApplicationContext,...

    定时任务Quartz的基本使用

    综上所述,Quartz为Java开发者提供了一套强大的定时任务解决方案,通过灵活的配置和API,可以轻松地实现复杂的时间调度需求。在实际项目中,结合Spring框架,还可以实现更便捷的Quartz集成,提升开发效率。

    Spring Quartz定时任务 jar包

    Spring Quartz定时任务jar包是Java开发中用于实现定时任务调度的一种解决方案。Quartz是一个开源的作业调度框架,它允许程序创建、调度和执行作业,而Spring框架则为Quartz提供了良好的整合,使得在Spring应用中配置...

    quartz实现动态任务定时调度

    总结来说,Quartz 提供了一个强大且灵活的定时任务调度解决方案,它允许你动态地管理任务和调度。通过配置数据库持久化,你可以方便地查看和修改任务设置。虽然在特定的 cron 表达式问题上遇到了挑战,但通常 Quartz...

    Quartz.net最新版定时任务可配置

    综上,Quartz.NET的最新版本提供了一套完善的定时任务解决方案,无论是简单的周期性任务还是复杂的调度逻辑,都能通过灵活的配置来实现。开发者可以根据项目需求,选择适合的配置方式和调度策略,轻松构建稳定可靠的...

    Spring mvc + Mybatis + quartz + swagger 定时任务管理[新增、编辑、删除、修改]

    本项目就是基于Spring MVC、Mybatis、Quartz和Swagger实现的一个定时任务管理系统,旨在提供一种灵活且可配置的方式来管理和控制定时任务。下面将详细讲解这个系统的核心组成部分及其工作原理。 首先,Spring MVC是...

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

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

    WEB管理的Quartz定时任务

    Quartz是一款开源的作业调度框架,它允许开发者创建、组织和执行定时任务。在Web管理的Quartz定时任务中,我们通常会结合SpringMVC和MyBatis来构建一个完善的后台管理系统,以便于管理和监控定时任务。下面将详细...

Global site tag (gtag.js) - Google Analytics