欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Spring+Quartz配置定时任务实现代码

程序员文章站 2022-03-20 13:46:02
作为一个优秀的开源调度框架,quartz 具有以下特点:强大的调度功能,例如支持丰富多样的调度方法,可以满足各种常规及特殊需求;灵活的应用方式,例如支持任务和调度的多种组合方式,支持调度数据的多种存储...

作为一个优秀的开源调度框架,quartz 具有以下特点:

强大的调度功能,例如支持丰富多样的调度方法,可以满足各种常规及特殊需求;

灵活的应用方式,例如支持任务和调度的多种组合方式,支持调度数据的多种存储方式;

分布式和集群能力,terracotta 收购后在原来功能基础上作了进一步提升。

另外,作为 spring 默认的调度框架,quartz 很容易与 spring 集成实现灵活可配置的调度功能。

代码如下

1、

<bean id="schedulerfactory" class="org.springframework.scheduling.quartz.schedulerfactorybean"> 
    <property name="triggers"> 
      <list> 
         <ref local="createfileandstufftrigger"/>
      </list> 
    </property> 
  </bean>

2、

<bean id="createfileandstufftrigger" class="org.springframework.scheduling.quartz.simpletriggerbean">
    <property name="startdelay"><value>5000</value></property>
    <property name="repeatcount"><value>-1</value></property>
    <property name="repeatinterval"><value>36000000</value></property>
    <property name="jobdetail"><ref bean="createfileandstufftask" /></property>
  </bean>

3、

<bean id="createfileandstufftask" class="org.springframework.scheduling.quartz.methodinvokingjobdetailfactorybean"> 
    <property name="targetobject"> 
      <ref bean="jobservice" /> <!--目标job--> 
    </property> 
    <property name="targetmethod"> 
      <value>docreate</value> <!--目标方法--> 
    </property> 
    <property name="concurrent"> 
      <value>false</value> <!--定时任务串行--> 
    </property> 
  </bean>

4、

<bean id="jobservice" class="com.task.createfileandstuff"></bean>

5、

在createfileandstuff.java

/**
   * 开始生成
   */
  public synchronized void docreate(){
    
    if ("yes".equals(configutil.createfileandsuffswitch())) {
      list<map<string ,object>> switchdlist=this.getbusinfo();
      
      if(null==switchdlist || 0==switchdlist.size()) return;
      
      this.docreateforloopswitch(switchdlist,one_number);
    }
    
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。