• 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"
           xsi:schemaLocation="
                http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
                http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
             
             <!-- ############################  批量删除空库存数据    ########################## -->
            <bean id="batchDelEmptyStoreQuantJob" class="com.yundaex.wms.sys.job.TimingBatchDelEmptyStoreQuantJob"></bean>
            <bean id="batchDelEmptyStoreQuantJobTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
                <property name="targetObject" ref="batchDelEmptyStoreQuantJob" />
                <property name="targetMethod" value="doExecute" />
                <property name="concurrent" value="false"/><!-- 此定时任务不会并发,CronTriggerBean任务执行超时,会等到下次执行。quartz采用多线程,其它定时任务不受此定时任务影响-->
            </bean>
            
             <bean id="batchDelEmptyStoreQuantDoTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
                 <property name="jobDetail" ref="batchDelEmptyStoreQuantJobTask" />
                <!-- cron表达式 -->
                <property name="cronExpression" value="0 0 02 * * ?" /><!-- 每天凌晨2点执行一次-->
             </bean>
             
              <!-- ############################  批量删除僵化包装台数据    ########################## -->
            <bean id="batchDelZombiePackBenchNoJob" class="com.yundaex.wms.core.alive.job.TimingBatchDelZombiePackBenchNoJob"></bean>
            <bean id="batchDelZombiePackBenchNoJobTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
                <property name="targetObject" ref="batchDelZombiePackBenchNoJob" />
                <property name="targetMethod" value="doExecute" />
                <property name="concurrent" value="false"/><!-- 此定时任务不会并发,SimpleTriggerBean任务执行超时,执行完立即再次执行-->
            </bean>
            
            <bean id="batchDelZombiePackBenchNoDoTime" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
                 <property name="jobDetail" ref="batchDelZombiePackBenchNoJobTask" />
                 <property name="repeatInterval" value="40000"></property><!-- 每40000毫秒执行一次-->
            </bean>
            
              <!-- ############################  定时处理「待取消」电子面单   ########################## -->
            <bean id="batchCancelElectronOrderJob" class="com.yundaex.wms.sys.job.TimingBatchCancelElectronOrderJob"></bean>
            <bean id="batchCancelElectronOrderJobTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
                <property name="targetObject" ref="batchCancelElectronOrderJob" />
                <property name="targetMethod" value="doExecute" />
                <property name="concurrent" value="false"/>
            </bean>
            
            <bean id="batchCancelElectronOrderDoTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
                 <property name="jobDetail" ref="batchCancelElectronOrderJobTask" />
                <!-- cron表达式 -->
                <property name="cronExpression" value="0 0/3 * * * ?" /><!-- 每3分钟执行一次-->
            </bean>
            
            <!-- ############################  发货信息和揽件扫描信息的数据接口job    ########################## -->
            <bean id="deliveryAndPiecesInfoGettingJob" class="com.yundaex.wms.sys.job.DeliveryAndPiecesInfoGettingJob"></bean>
            <bean id="deliveryAndPiecesInfoGettingJobTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
                <property name="targetObject" ref="deliveryAndPiecesInfoGettingJob" />
                <property name="targetMethod" value="doExecute" />
                <property name="concurrent" value="false"/>
            </bean>
            
             <bean id="deliveryAndPiecesInfoGettingJobDoTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
                 <property name="jobDetail" ref="deliveryAndPiecesInfoGettingJobTask" />
                <!-- cron表达式 -->
                <property name="cronExpression" value="0 */30 * * * ?" /><!-- 每30分钟执行一次-->
             </bean>
                    
             <!-- ############################  定时数据归档    ########################## -->
            <bean id="autoArchiveJob" class="com.yundaex.wms.sys.job.AutoArchiveJob"></bean>
            <bean id="autoArchiveJobTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
                <property name="targetObject" ref="autoArchiveJob" />
                <property name="targetMethod" value="doExecute" />
                <property name="concurrent" value="false"/>
            </bean>
            
             <bean id="autoArchiveDoTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
                 <property name="jobDetail" ref="autoArchiveJobTask" />
                <!-- cron表达式 -->
                <property name="cronExpression" value="0 0 03 * * ?" /><!-- 每天凌晨3点执行一次-->
             </bean>
            
            <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序  -->
             <bean id="startQuartz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
              <property name="triggers">
                    <list>
                        <ref bean="batchDelEmptyStoreQuantDoTime"/>
                        <ref bean="batchDelZombiePackBenchNoDoTime"/>
                        <ref bean="batchCancelElectronOrderDoTime"/>
                        <ref bean="deliveryAndPiecesInfoGettingJobDoTime"/>
                        <ref bean="autoArchiveDoTime"/>
                    </list>
                </property>
            </bean>
    </beans>
    import org.apache.log4j.Logger;
    import org.springframework.beans.factory.annotation.Autowired;
    
    import com.yundaex.wms.core.alive.job.handler.BatchDelZombiePackBenchNoHandler;
    
    public class TimingBatchDelZombiePackBenchNoJob {
        
        private static final Logger logger = Logger.getLogger(TimingBatchDelZombiePackBenchNoJob.class);
    
        @Autowired
        private BatchDelZombiePackBenchNoHandler handler;
        
        public void doExecute() {
            try {
                long startTime = 0L;
                if (logger.isDebugEnabled()){
                    startTime = System.currentTimeMillis();
                    logger.debug("定时清除僵化包装台任务开始。");
                }
                
                handler.execute();
                
                if (logger.isDebugEnabled()){
                    long endTime = System.currentTimeMillis();
                    logger.debug("定时清除僵化包装台任务结束,耗时:" + (endTime - startTime) + "毫秒。");
                }
            } catch (Exception e) {
                logger.error("定时清除僵化包装台任务异常。", e);
            }
        }
    }
            <!-- TIMER -->
            <dependency>
                <groupId>org.quartz-scheduler</groupId>
                <artifactId>quartz</artifactId>
                <version>1.8.5</version>
            </dependency>
  • 相关阅读:
    with一个对象,自动触发__enter__方法
    SQLAlchemy-Utils
    SQLAlchemy
    wtforms
    Python数据库连接池DBUtils(基于pymysql模块连接数据库)
    VMWare安装linux centos,安装中文输入法
    HttpServletRequest和ServletRequest的区别
    Java序列化
    mybatis循环取序列,值相同问题处理
    利用jdk将wsdl生成java代码
  • 原文地址:https://www.cnblogs.com/tonggc1668/p/6525241.html
Copyright © 2020-2023  润新知