quartz的運用(二):整合spring實現quartz任務調度配置

一、quartz.properties文件配置

quartz.corePoolSize=10
quartz.maxPoolSize=20
quartz.queueCapacity=50

二、springcontext-task.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd" default-lazy-init="true"> 
    <bean id="executor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
        <property name="corePoolSize" value="${quartz.corePoolSize}"/>
        <property name="maxPoolSize" value="${quartz.maxPoolSize}"/>
        <property name="queueCapacity" value="${quartz.queueCapacity}"/>
    </bean>   
    <!--訂單統計推送-->
    <bean id="orderAccordTask" class="com.dwx.project.task.OrderAccordTask"/>
    <bean id="OrderAccordDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="orderAccordTask"/>
        <property name="targetMethod" value="execute"/>
        <property name="concurrent" value="false"/>
    </bean>
    <bean id="OrderAccordTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="OrderAccordDetail"/>
        <property name="cronExpression" value="0 5 0 * * ?"/>
    </bean>   
    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list> 
                <ref bean="OrderAccordTrigger"/> 
            </list>
        </property>
        <property name="taskExecutor" ref="executor"/>
        <property name="autoStartup" value="true"></property>
    </bean>
</beans>

三、Java中實現

package com.dwx.project.task;
 
import org.apache.log4j.Logger; 
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;


/**
 * 訂單統計
 *
 * @author: davis
 * @date: create in 2017/4/5.
 */
public class OrderAccordTask {
 
    private static final Logger LOGGER = Logger.getLogger(OrderAccordTask.class);
    @Resource
    private IOrderAccordService orderAccordService; 
    public void execute() {

         //業務操作

    }

}


發佈了40 篇原創文章 · 獲贊 17 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章