spring 定时任务

摘要:
如果需求很简单,可以考虑SpringTask。今天,我们将重点介绍石英。石英和Spring有多种集成模式,包括RAM和JDBC。“);System.out.println;System.out.pintln(”任务执行结束…“);}}开始下面的配置,其中testCore是我配置的CORN表达式,它被配置为每五秒执行一次。--要执行的类的名称--˃execute˂!

1.定时任务实现方式有很多,java自带的定时器可以,但是不好用,基本不用。如果需求较为简单,可以考虑 Spring Task。如果更为负责,则可以考虑重量级的框架quartz。今天重点介绍quartz,quartz和 Spring 的集成方式有多种,有RAM 和 JDBC 方式。RAM方式可以理解为静态的方式,任务和触发方式均可配置式,JDBC方式可实现任务动态添加,启动,暂停,更加灵活,但是实现稍微复杂。接下来我们介绍一种RAM方式的实现方式。

2.jar 包

<dependency>
      <groupId>org.quartz-scheduler</groupId>
      <artifactId>quartz</artifactId>
      <version>2.2.1</version>
</dependency>

<spring.version>4.2.6.RELEASE</spring.version>

注意版本,不然会报JobDetailImpl ClassNotFound

3.实现

这是要执行任务

@Component("testTask")
public class testTask {
    public void execute(){
        System.out.println("计划任务开始执行。。。。。");
        System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
        System.out.println("计划任务执行结束。。。。。");
    }
}

下面开始配置,其中 testCorn 是我配置的corn 表达式,配置的是每五秒执行一次。关于Corn表达式 可参考 http://cron.qqe2.com/ ,在线配置表达式,很方便,满足大部分需求。

<bean id="SpringQtzJobMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
        <property name="targetObject">   <!-- 要执行的类名 -->
            <ref bean="testTask"/>   
        </property>  
        <property name="targetMethod">  <!-- 要执行的方法名称 -->  
            <value>execute</value>  
        </property>  
    </bean> 
  <!--定义调度器 -->
    <bean id="CronTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">  
       <property name="jobDetail" ref="SpringQtzJobMethod"></property>  
       <property name="cronExpression" value="${testCorn}"></property>  
   </bean>
   
   <!-- 调度工厂 -->
   <bean id="SpringJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
        <property name="triggers">  
            <list>  
                <ref bean="CronTriggerBean"/>  
            </list>  
        </property>  
   </bean>    
#定义corn表达式
testCorn=0/5 * * * * ?

4.执行结果

spring 定时任务第1张

spring 定时任务第2张

免责声明:文章转载自《spring 定时任务》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux 路由 静态路由如何删除本地项目文件中的.svn文件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

几种常见的微服务架构方案简述——ZeroC IceGrid、Spring Cloud、基于消息队列

微服务架构是当前很热门的一个概念,它不是凭空产生的,是技术发展的必然结果。虽然微服务架构没有公认的技术标准和规范草案,但业界已经有一些很有影响力的开源微服务架构平台,架构师可以根据公司的技术实力并结合项目的特点来选择某个合适的微服务架构平台,以此稳妥地实施项目的微服务化改造或开发进程。本文选自《架构解密:从分布式到微服务》一书,了解本书详情请点击阅读原文。...

Spring源码阅读笔记01:源码阅读环境准备

1. 写在前面 对于做Java开发的同学来说,Spring就像是一条绕不过去的路,但是大多数也只是停留在对Spring的简单使用层面上,对于其背后的原理所知不多也不愿深究,关于这个问题,我在平时的生活及工作中也在不断思考。 为什么要阅读Spring的源码? 不是为了读源码而读源码,Spring有很好的设计思想,值得学习; Spring是当前使用最广泛的一...

Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier、@scope

以下内容摘自部分网友的,并加上了自己的理解 @Service用于标注业务层组件(我们通常定义的service层就用这个) @Controller用于标注控制层组件(如struts中的action、Spring MVC中的Controller) @Repository用于标注数据访问组件,即DAO组件 @Component泛指组件,当组件不好归类的时候,我们...

Spring框架系列(六)--事务Transaction

  本文绝大部分内容为转载,原文地址:https://blog.csdn.net/trigl/article/details/50968079   除此之外,后面还有延伸内容   事务在企业日常开发中几乎是一定会遇到的,例如一个审核的流程可能涉及到查询、修改、插入等操作,所以保证事务性是很有必要的。一般就是开启事务支持,然后@Transactional,但...

Spring知识点整理---(IOC,DI)

1.Spring的基本应用 1.1Spring概述 1.1.1什么是Spring Spring是由Rod Johnson组织和开发的一个分层的Java SE/EE full-stack(一站式)轻量级开源框架,它以IoC(Inversion of Control,控制反转)和 AOP(Aspect OrientedProgramming,面向切面编程)为内...

对象Bean与Map互转问题

一、摘要 在实际开发过程中,经常碰到需要进行对象与map之间互转的问题,其实对于对象、Map 之间进行互转有很多种方式,下面我们一起来梳理一下: 利用 JSON 工具包,将对象转成字符串,之后再转成 Map,这种需要转换2次,相对来说效率比较底; 利用 Java 反射,获取 Bean 类的属性和值,再转换到 Map 对应的键值对中,相对来说这种方法效率高...