1. 程式人生 > >spring整合quartz定時任務

spring整合quartz定時任務

1.新增Maven的依賴

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>3.2.6.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
			<version>3.2.6.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>3.2.6.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
			<version>3.2.6.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.quartz-scheduler</groupId>
			<artifactId>quartz</artifactId>
			<version>2.2.1</version>
		</dependency>
		<dependency>
			<groupId>org.quartz-scheduler</groupId>
			<artifactId>quartz-jobs</artifactId>
			<version>2.2.1</version>
		</dependency>

2.建立類,到時候定時執行這個類中的服務()方法

package com.ishop.base.quartz;

/**
 * Created by GanBaby on 2018/10/26
 */
public class TestJobTask{
    /**
     *業務邏輯處理
     */
    public void   service(){
        /**業務邏輯*/
        System.out.println(System.currentTimeMillis());
    }
}

3.新增彈簧的XML配置

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-4.2.xsd">
    <!-- 定時任務start -->

    <!-- 執行緒執行器配置,用於任務註冊 -->
    <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="testJobTask" class="com.ishop.base.quartz.TestJobTask" />

    <!-- 排程業務 -->
    <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="testJobTask" />
        <property name="targetMethod" value="service" />
    </bean>

    <!-- 增加呼叫的觸發器,觸發時間 -->
    <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="jobDetail" />
        <property name="cronExpression" value="0/5 * * * * ? *" />
    </bean>

    <!-- 設定排程 -->
    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="cronTrigger" />
            </list>
        </property>
        <property name="taskExecutor" ref="executor" />
    </bean>

    <!-- 定時任務end -->

</beans>

*新增完了XML之後記得把這個XML新增進掃描,我的是在web.xml檔案中掃描所有的XML檔案

  <!-- 載入spring容器 -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring/*.xml</param-value>
  </context-param>