Spring配置Quartz例子

jopen 11年前發布 | 76K 次閱讀 Spring Quartz 作業調度框架

1.引入除spring.jar外的Quartz的jar包quartz-all-1.8.6.jar

2.任務類 QuartzJob

public class QuartzJob {

    public void work1() 
    { 
    System.out.println("Quartz的任務調度!!!work1啟用……"); 
    }

    public void work2() 
    { 
    System.out.println("Quartz的任務調度!!!work2啟用……"); 
    }


}

2.Spring 配置 quartz-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jee="http://www.springframework.org/schema/jee"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd  
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd">


    <!-- 線程執行器配置,用于任務注冊 -->
    <bean id="executor"
        class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
        <property name="corePoolSize" value="10" />
        <property name="maxPoolSize" value="100" />
        <property name="queueCapacity" value="500" />
    </bean>

    <!-- 要調用的工作類 -->
    <bean id="quartzJob" class="QuartzJob"></bean>



    <!--調度業務 : 定義調用對象和調用對象的方法 -->
    <bean id="jobtask1"
        class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <!-- 調用的類 -->
        <property name="targetObject" ref="quartzJob" />
        <!-- 調用類中的方法 -->
        <property name="targetMethod" value="work1" />
    </bean>

    <bean id="jobtask2"
        class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <!-- 調用的類 -->
        <property name="targetObject" ref="quartzJob" />
        <!-- 調用類中的方法 -->
        <property name="targetMethod" value="work2" />
    </bean>

    <!-- 定義觸發時間 -->
    <bean id="doTime1" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail" ref="jobtask1" />
        <!-- cron表達式 --><!-- 每隔10秒執行一次 -->
        <property name="cronExpression" value="0/3 * * * * ?" />
    </bean>

    <bean id="doTime2" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail" ref="jobtask2" />
        <property name="cronExpression" value="0/5 * * * * ?" />
    </bean>

    <!--設置調度 總管理類 如果將lazy-init='false'那么容器啟動就會執行調度程序 -->
    <bean id="startQuertz" lazy-init="false" autowire="no"
        class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="doTime1" />
                <ref bean="doTime2" />
            </list>
        </property>

        <property name="taskExecutor" ref="executor" />
    </bean>

</beans>

3.加載 <!-- 加載spring --> 

<context-param>  
        <param-name>contextConfigLocation</param-name>  
        <param-value>  
            /WEB-INF/classes/quartz-config.xml  
        </param-value>  
    </context-param>
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!