Java Spring quartz 定時任務

Java Spring quartz 定時任務

一、技術實現

1.1 配置 spring 環境

spring 配置 略

定時任務相關 jar 包

    <!-- 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>${org.springframework.version}</version>
    </dependency>

1.2 applicationContext 配置

    <!--啓用spring的一些annotation -->
    <context:annotation-config/>

    <!--定時任務1 配置任務bean類 -->
    <bean name="job1" class="com.timedtask.TimedTask"/>
    <bean id="SpringQtzJobMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject">
            <ref bean="job1"/>
        </property>
        <property name="targetMethod">
            <!-- 要執行的方法名稱 -->
            <value>task1</value>
        </property>
    </bean>
    <!--調度觸發器-->
    <bean id="CronTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="SpringQtzJobMethod"></property>
        <property name="cronExpression" value="0/5 * * * * ?"></property>
    </bean>

    <!--定時任務2-->
    <bean id="SpringQtzJobMethod2" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject">
            <ref bean="job1"/>

        </property>
        <property name="targetMethod">
            <!-- 要執行的方法名稱 -->
            <value>task2</value>
        </property>
    </bean>
    <!--調度觸發器-->
    <bean id="CronTriggerBean2" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="SpringQtzJobMethod2"></property>
        <property name="cronExpression" value="0/5 * * * * ?"></property>
    </bean>
    <!--調度工廠-->
    <bean id="SpringJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="CronTriggerBean"/>
                <ref bean="CronTriggerBean2"/>
            </list>
        </property>
    </bean>

1.3 定時任務類

/**
 * 定時任務
 *
 * @author zt1994 2019/8/22 21:55
 */
public class TimedTask {

    /**
     * 定時任務1
     */
    public void task1() {
        System.out.println("task1");
    }


    /**
     * 定時任務2
     */
    public void task2() {
        System.out.println("task2");
    }
}

二、測試定時任務

啓動項目,測試結果

task1
task2
task1
task2
task1
task2
task1
task2
task1
task2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章