zoukankan      html  css  js  c++  java
  • quart任务调度框架实战

    需求:自动关闭2天前的订单


    定时执行的任务bean 

    package com.taotao.store.order.job;
    
    import org.joda.time.DateTime;
    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;
    import org.springframework.context.ApplicationContext;
    import org.springframework.scheduling.quartz.QuartzJobBean;
    
    import com.taotao.store.order.mapper.OrderMapper;
    
    /**
     * 扫描超过2天未付款的订单关闭
     */
    public class PaymentOrderJob extends QuartzJobBean {
    
        @Override
        protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
            ApplicationContext applicationContext = (ApplicationContext) context.getJobDetail().getJobDataMap()
                    .get("applicationContext");
            //时间参数,当前时间向前推2天
            applicationContext.getBean(OrderMapper.class).paymentOrderScan(new DateTime().minusDays(2).toDate());
        }
    
    }
    



    配置

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
    	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    	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.0.xsd
    	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
    	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    	http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
    
    	<!-- 定义任务bean -->
    	<bean name="paymentOrderJobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
    		<!-- 指定具体的job类 -->
    		<property name="jobClass" value="com.taotao.store.order.job.PaymentOrderJob" />
    		<!-- 指定job的名称 -->
    		<property name="name" value="paymentOrder" />
    		<!-- 指定job的分组 -->
    		<property name="group" value="Order" />
    		<!-- 必须设置为true,如果为false,当没有活动的触发器与之关联时会在调度器中删除该任务  -->
    		<property name="durability" value="true"/>
    		<!-- 指定spring容器的key,如果不设定在job中的jobmap中是获取不到spring容器的 -->
    		<property name="applicationContextJobDataKey" value="applicationContext"/>
    	</bean>
    	
    	<!-- 定义触发器 -->
    	<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    		<property name="jobDetail" ref="paymentOrderJobDetail" />
    		<!-- 每一分钟执行一次 -->
    		<property name="cronExpression" value="0 0/1 * * * ?" />
    	</bean>
    	
    	<!-- 定义调度器 -->
    	<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    	    <property name="triggers">
    	        <list>
    	            <ref bean="cronTrigger" />
    	        </list>
    	    </property>
    	</bean>
    
    </beans>



  • 相关阅读:
    vs c++ 自动生成svn版本信息 编译前脚本
    cannot seek value-initialized vector iterator 程序崩溃
    shell 统计代码行数
    c++ 控制台程序增加图标的一种方法
    grpc c++ 设置断线重连时间
    拓端数据tecdat|R语言用lme4多层次(混合效应)广义线性模型(GLM),逻辑回归分析教育留级调查数据
    拓端数据tecdat|R语言计量经济学:虚拟变量(哑变量)在线性回归模型中的应用
    拓端数据tecdat|Python风险价值计算投资组合VaR(Value at Risk )、期望损失ES(Expected Shortfall)
    拓端数据tecdat|R语言用相关网络图可视化分析汽车配置和饮酒习惯
    拓端数据tecdat|R语言 PCA(主成分分析),CA(对应分析)夫妻职业差异和马赛克图可视化
  • 原文地址:https://www.cnblogs.com/chenny3/p/10226173.html
Copyright © 2011-2022 走看看