1. 程式人生 > 程式設計 >Spring+Quartz配置定時任務實現程式碼

Spring+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);
    }
    
  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。