当前位置 主页 > 服务器问题 > Linux/apache问题 >

    spring整合Quartz框架过程详解

    栏目:Linux/apache问题 时间:2019-12-12 23:06

    这篇文章主要介绍了spring整合Quartz框架过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    1.Quartz框架简介

    Quartz是一个完全由Java编写的开源任务调度的框架,通过触发器设置作业定时运行规则,控制作业的运行时间。其中quartz集群通过故障切换和负载平衡的功能,能给调度器带来高可用性和伸缩性。主要用来执行定时任务,如:定时发送信息、定时生成报表等等。

    Quartz框架的主要特点:

    · 强大的调度功能,例如丰富多样的调度方法,可以满足各种常规和特殊需求; · 灵活的应用方式,比如支持任务调度和任务的多种组合,支持数据的多种存储; · 支持分布式集群,在被Terracotta收购之后,在原来基础上进行了进一步的改造。

    2.Quartz框架的使用

    2.1搭建环境

    <!--定时任务 -->
    <dependency>
      <groupId>org.quartz-scheduler</groupId>
      <artifactId>quartz</artifactId>
      <version>2.2.3</version>
    </dependency>
    2.2 配置任务

    2.2 配置任务类

    package cn.test.manager.job;
    
    import java.util.Date;
    
    public class MyJob {
      public void run() {
        System.out.println("执行任务调度:"+new Date());
      }
    }

    2.3 整合Spring

    <!-- 定义一个任务类 到达时间执行的方法的所在类-->
    <bean  class="cn.test.manager.job.MyJob">
    </bean>
    <!-- 任务类描述 -->
    <bean  class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
      <!--将任务类交给工厂-->
      <property name="targetObject" ref="myJob"></property>
      <!--将时间到达执行的方法交给工厂-->
      <property name="targetMethod" value="run"></property>
    </bean>
    <!-- 触发器 -->
    <bean  class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
      <!--将任务类描述交给触发器-->
     <property name="jobDetail" ref="jobDetail"></property>
     <!--Cron表达式,定时规则-->
      <property name="cronExpression" value="0/5 * * * * ? *"></property>
    </bean>
    <!-- 总管理容器 -->
    <bean  class="org.springframework.scheduling.quartz.SchedulerFactoryBean" >
      <property name="triggers">
       <list>
         <ref bean="mailTrigger"/>
       </list>
      </property>
    </bean>

    3.Cron表达式

    对于Quartz,我们使用的时候主要是注重两个方面,一个是定时任务的业务,另一个就是Cron表达式。

    3.1cron表达式的格式

    QuartzCron 表达式支持到七个域

    名称 是否必须 允许值 特殊字符
    0-59 , - * /
    0-59 , - * /
    0-23 , - * /
    1-31 , - * ? / L W C