Spring集成Quartz之作业类继承自特定的基类

原创 2017年11月14日 19:05:57

1.applicationContext.xml文件配置
这里写图片描述
2.pplication-quartz-cluster.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:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jpa="http://www.springframework.org/schema/data/jpa"
    xmlns:security="http://www.springframework.org/schema/security"
    xsi:schemaLocation="
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
        http://www.springframework.org/schema/security 
        http://www.springframework.org/schema/security/spring-security-3.2.xsd
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/data/jpa 
        http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-4.0.xsd">

    <!-- JobFactory定义 -->
    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                  <ref bean="ddJobTrigger" />  
            </list>
        </property>
    </bean>

    <!-- JobTeigger定义 -->
    <bean id="ddJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail">
            <ref bean="ddJobDetail" />
        </property>
        <property name="cronExpression">
            <value>59 59 23 * * ? </value>  
        </property>
    </bean>

    <!-- JobDetail定义 -->
    <bean name="ddJobDetail" class="org.springframework.scheduling.quartz.JobDetailBean">  
        <property name="jobClass" value="com.chw.task.ddTask" />  
        <property name="jobDataAsMap">  
            <map>  
                <entry key="lptDdSpService" value-ref="lptDdSpServiceImpl" />  
            </map>  
        </property>  
    </bean>

</beans>


3.任务类编写

package com.chw.task;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;

import com.chw.framework.log.ChwLogUtil;
import com.chw.model.lpt.LptDpDdSp;
import com.chw.service.lpt.ILptDdSpService;
import com.chw.system.util.DateUtils;

/**
* @ClassName: ddTask
* @Description: 更新订单状态接口
* @author wangjintao
* @date 2017年11月14日 下午5:48:45
*
*/ 
public class ddTask  extends QuartzJobBean{

    private ILptDdSpService lptDdSpService;

    private final static Long ONE_WEEK_TIMES = 7 * 24 * 60 * 60 * 1000L;

    private final static String DATE_FORMAT_STR = "yyyy-MM-dd HH:mm:ss";

    @Override
    protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
         ChwLogUtil.getLogger().info(DateUtils.getCurrentTimeToStr(DATE_FORMAT_STR)+"  订单定时任务开始执行....");

         lptDdSpService  = (ILptDdSpService) context.getMergedJobDataMap().get("lptDdSpService");

         String sdsj = this.timesToDateStr(new Date().getTime() - ONE_WEEK_TIMES,DATE_FORMAT_STR);

         //获取一周前订单数据(订单状态为已送达)
         List<LptDpDdSp> ddList = lptDdSpService.findTaskList(sdsj);
         if(null!=ddList){
             //更新订单状态为已确认
             for(LptDpDdSp ddInfo:ddList){
                  ddInfo.setDdzt(3);
                  int i = lptDdSpService.update(ddInfo);
                  if(1!=i){
                      ChwLogUtil.getLogger().info(DateUtils.getCurrentTimeToStr(DATE_FORMAT_STR)+"  订单id="+ddInfo.getDdid()+"更新失败!"); 
                  }else{
                      ChwLogUtil.getLogger().info(DateUtils.getCurrentTimeToStr(DATE_FORMAT_STR)+"  订单id="+ddInfo.getDdid()+"更新成功!"); 
                  }
             }
         }else{
             ChwLogUtil.getLogger().info(DateUtils.getCurrentTimeToStr(DATE_FORMAT_STR)+"暂无更新订单!"); 
         }
        ChwLogUtil.getLogger().info(DateUtils.getCurrentTimeToStr(DATE_FORMAT_STR)+"  订单定时任务执行结束....");

    }

    private String timesToDateStr(long oneWeekBeforeTimes, String dateFormatStr) {
        Date date = new Date(oneWeekBeforeTimes);
        SimpleDateFormat sdf = new SimpleDateFormat(dateFormatStr);
        return sdf.format(date);
    }

}
版权声明:本文为博主原创文章,未经博主允许不得转载。

Spring中Quartz调度器的使用 ----继承QuartzJobBean,不继承QuartzJobBean两种方式

一、Quartz的特点 * 按作业类的继承方式来分,主要有以下两种: 1.作业类继承org.springframework.scheduling.quartz.QuartzJobBean类的方式 ...
  • ye_sheng
  • ye_sheng
  • 2015年08月31日 13:03
  • 1984

Spring集成Quartz定时器实现定时作业任务

这篇文章有点久远了,记得是第一次出来实习时,大三暑假自己找了一家软件公司实习了很长时间,当时学到很多实践性的东西,这个Quartz就是其中一个,还记得是做OA,一些消息需要定时提醒定时删除,项目框架里...
  • chenleixing
  • chenleixing
  • 2015年01月30日 23:22
  • 2401

c++继承之虚基类

虚基类的概念:        若在多继承派生类中继承的基类再拥有一个公共基类,则这个公共基类会在多继承派生类的对象中产生多个公共基类子对象,如果要使这个公共基类再多继承派生类中只产生一个基类子对象,则...
  • erlian1992
  • erlian1992
  • 2015年03月11日 20:56
  • 1161

多重继承与虚基类

多重继承(multiple inheritance,MI)。
  • u012303544
  • u012303544
  • 2015年08月03日 21:13
  • 582

C++-继承:基类与派生类的关系

成员函数的重定义和名字隐藏基类的数据成员和成员函数在派生类中都有一份拷贝,派生类能够直接访问从基类继承而来的public和protected成员,且只能够通过这两类成员访问从基类继承而来的privat...
  • ko_tin
  • ko_tin
  • 2017年02月23日 18:29
  • 274

C++学习-多继承和虚基类

本文主要是讨论类的多继承,多继承的方式可使派生类具有多个基类的特性。以下是一个继承关系,C从A和B基类中派生出来,在派生类C中,包含了基类A与基类B的成员,还有C类自己的成员。 在上述关系图中,可...
  • laoda1128
  • laoda1128
  • 2015年11月18日 10:29
  • 527

Objective-C(三、类与继承,基类,self、super关键字,多态,组合)——iOS开发基础

类与继承,继承优缺点及使用注意要点,基类; self、super作用及使用注意要点;多态产生条件及好处与限制; 继承与组合的区别……...
  • Zsk_Zane
  • Zsk_Zane
  • 2015年06月25日 21:26
  • 2837

C++之虚函数(三)虚继承和虚基类详解

多继承(Multiple Inheritance)是指从多个直接基类中产生派生类的能力,多继承的派生类继承了所有父类的成员。尽管概念上非常简单,但是多个基类的相互交织可能会带来错综复杂的设计问题,命名...
  • Bruce_0712
  • Bruce_0712
  • 2017年02月18日 10:52
  • 332

动态创建quartz作业

动态创建quartz作业最近在公司的业务中遇到了需要动态创建quartz作业的需求(在定时推送任务创建后,还可以更改任务的执行方法、时间、参数等),这对于之前没用过quartz的我来说十分蛋疼。但在捣...
  • coki4568213
  • coki4568213
  • 2017年05月15日 16:03
  • 247

继承与派生:派生类从基类继承的过程

派生类从基类继承的过程可以分为三个步骤:吸收基类成员、修改基类成员和添加新成员。吸收基类成员就是代码复用的过程,修改基类成员和添加新成员实现的是对原有代码的扩展,而代码的复用和扩展是继承与派生的主要目...
  • chunlanse2014
  • chunlanse2014
  • 2015年03月16日 12:05
  • 528
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring集成Quartz之作业类继承自特定的基类
举报原因:
原因补充:

(最多只允许输入30个字)