quartz与spring整合

来源:互联网 发布:淘宝网休闲运动套装 编辑:程序博客网 时间:2024/04/28 14:04

    <!-- 导入定时任务 -->
    <!-- <import resource="classpath:spring/quartz.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:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"
    default-lazy-init="false">

    <description>quartz Configuration</description>

    <!-- 配置执行定时任务的类和方法 -->
    <bean id="jobDayTotal" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject">
            <bean class="com.impay.boss.controller.TotalController"></bean>
        </property>
        <property name="targetMethod">
            <value>initTotalTransAgentYesterday</value>
        </property>
    </bean>
    <!-- 配置触发器 -->
    <bean id="jobDayTotalTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail">
            <ref bean="jobDayTotal" /> <!-- 触发器触发的 执行定时任务的bean -->
        </property>
        <property name="cronExpression">
            <!-- 定时任务执行的间隔 -->
            <!-- 每天1时 -->
            <value>0 0 3 * * ?</value>
            <!-- 每30秒 -->
            <!-- <value>0/30 * * * * ?</value> -->
        </property>
    </bean>
    
    
    <!-- 配置执行定时任务的类和方法 -->
    <bean id="jobDayCreateTransFile" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject">
            <bean class="com.impay.boss.controller.TransDataController"></bean>
        </property>
        <property name="targetMethod">
            <value>jobCreateYesterdayTransFile</value>
        </property>
    </bean>
    <!-- 配置触发器 -->
    <bean id="jobDayCreateTransFileTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail">
            <ref bean="jobDayCreateTransFile" /> <!-- 触发器触发的 执行定时任务的bean -->
        </property>
        <property name="cronExpression">
            <!-- 定时任务执行的间隔 -->
            <!-- 每天1时 -->
            <value>0 0 4 * * ?</value>
            <!-- 每30秒 -->
            <!-- <value>0/30 * * * * ?</value> -->
        </property>
    </bean>
    
    
    
        
    <!-- 配置执行D+1授权 定时任务的类和方法 -->
    <bean id="jobD1Open" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject">
            <bean class="com.impay.boss.controller.AgentHolidaySettleController"></bean>
        </property>
        <property name="targetMethod">
            <value>openMerchantD1Status</value>
        </property>
    </bean>
    <!-- 配置触发器 -->
    <bean id="jobD1OpenTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail">
            <ref bean="jobD1Open" /> <!-- 触发器触发的 执行定时任务的bean -->
        </property>
        <property name="cronExpression">
            <!-- 定时任务执行的间隔 -->
            <!-- 每天23时 -->
            <value>0 00 23 ? * *</value>
            
        </property>
    </bean>
    
    
     <!-- 配置执行根据商户类别交易统计的类和方法 -->
    <bean id="merTypeTotal" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject">
            <bean class="com.impay.boss.controller.TotalController"></bean>
        </property>
        <property name="targetMethod">
            <value>totalTransFromaMerchantType</value>
        </property>
    </bean>
    <!-- 配置触发器 -->
    <bean id="merTypeTotalTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail">
            <ref bean="merTypeTotal" /> <!-- 触发器触发的 执行定时任务的bean -->
        </property>
        <property name="cronExpression">
            <!-- 定时任务执行的间隔 -->
            <!-- 每天凌晨1点 -->
            <value>0 0 1 * * ?</value>
            
        </property>
    </bean>
    <!-- ======================== 调度工厂 ======================== -->
    <bean id="SpringJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <!--必须,QuartzScheduler 延时启动,应用启动后 QuartzScheduler 再启动 -->
        <property name="startupDelay" value="60" />
        <property name="triggers">
            <list>
                <ref bean="jobDayTotalTrigger" />
                <ref bean="jobDayCreateTransFileTrigger" />
                <ref bean="jobD1OpenTrigger" />
                <ref bean="merTypeTotalTrigger" />
            </list>
        </property>
        <property name="quartzProperties">
            <props>
                <prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
            </props>
        </property>
    </bean>
</beans>
0 0