SpringMVC(六):Spring 整合quartz做業調度框架


一、業務類(IndexUtils.java)

public class IndexUtils {
  
    public void createIndex(){
        System.out.println("------this is createIndex--------" + System.currentTimeMillis());
    }
}


二、Spring的xml配置

2.一、業務類的配置

<!-- 定義調度的業務對象 -->
<bean id="createIndex" class="whu.edu.irlab.utils.index.IndexUtils"/>


2.二、jobDetails配置

<!-- 增長調度業務邏輯,指定工做的具體類 -->
<bean id="CreateIndexJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  <property name="targetObject" ref="createIndex" />
  <property name="targetMethod" value="createIndex" />
  <property name="concurrent" value="false" /> <!-- 將併發設置爲false -->
</bean>


2.三、Trigger的配置

(1) CronTriggerBeanjava

<!--增長調度觸發器,設置觸發任務時間 -->
<bean id="timeTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
  <property name="jobDetail">
    <ref bean="CreateIndexJob" />
  </property>

  <property name="cronExpression">
    <!--天天凌晨2點執行任務 -->
    <value>0 0 02 * * ?</value>
  </property>
</bean>

Cron表達式的格式:秒 分 時 日 月 周 年(可選)spring

字段名                 容許的值                        容許的特殊字符  併發

               秒                         0-59                               , - * /  this

               分                         0-59                               , - * /  spa

               小時                   0-23                               , - * /  code

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

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

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

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

               「?」字符:表示不肯定的值

               「,」字符:指定數個值

               「-」字符:指定一個值的範圍

               「/」字符:指定一個值的增長幅度。n/m表示從n開始,每次增長m

               「L」字符:用在日表示一個月中的最後一天,用在周表示該月最後一個星期X

               「W」字符:指定離給定日期最近的工做日(週一到週五)

               「#」字符:表示該月第幾個周X。6#3表示該月第3個週五

(2) SimpleTriggerBean

延遲10s啓動,每隔60s執行一次

<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
 <property name="jobDetail" ref="CreateIndexJob" />
 <property name="startDelay" value="10000" />
 <property name="repeatInterval" value="60000" />
</bean>


2.四、Scheduler的配置

<!-- 設置調度,定製任務 -->
<bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  <property name="triggers">
    <list>
      <!-- 設置多個觸發器 -->
      <ref bean="timeTrigger" />
    </list>
  </property>
  <!--<property name="configLocation" value="classpath:quartz.properties" />-->
</bean>


三、Maven依賴

<!-- 利用quartz進行調度控制 -->
<dependency>
  <groupId>org.quartz-scheduler</groupId>
  <artifactId>quartz</artifactId>
  <version>2.2.2</version>
</dependency>
相關文章
相關標籤/搜索