ssm框架集成Quartz定時器


第一步:添加依賴

<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.2.1</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>4.2.4.RELEASE</version>
</dependency>

第二步:配置spring-web.xml

    <!-- 定義一個任務類 -->
    <bean id="MyJob" class="com.runmin.bajie.schedualer.Myjob"></bean>

    <!-- jobDetail -->
    <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="MyJob"></property>
        <property name="targetMethod" value="execute"></property>
        <property name="concurrent" value="false" /><!-- 作業不並發調度  -->
    </bean>

    <!-- 定義trigger 觸發器 -->
    <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="jobDetail"></property>
        <property name="cronExpression" value="0/10 * * * * ?"></property>
    </bean>

    <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
           <list>
                <ref bean="cronTrigger"/>
           </list>
        </property>
    </bean>

第三步:寫定時業務

package com.runmin.bajie.schedualer;

import java.util.Date;

public class Myjob {

    public void execute(){


        System.out.println("Quartz的任務調度!!!"+(new Date()).toString());

    }

}

因為配置了concurrent等於false,所以假如run方法的執行時間超過10秒,在執行完之前即使時間已經超過了10秒下一個定時計划執行任務仍不會被開啟,如果是true,則不管是否執行完,時間到了都將開啟。

另外一點就是,啟動項目以后還要發請求,才能啟動定時器。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM