转载自 https://www.cnblogs.com/ClassNotFoundException/p/6635189.html

(一)在xml里加入task的命名空间

<?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:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/beans classpath:/org/springframework/beans/factory/xml/spring-beans-4.1.xsd  http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.1.xsd"><task:annotation-driven /></beans>

(二)启用注解驱动的定时任务

<?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:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/beans classpath:/org/springframework/beans/factory/xml/spring-beans-4.1.xsd  http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.1.xsd"><task:annotation-driven /></beans>

(三)定时任务

  Class : ATask

package com.xindatai.ibs.liang;import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;@Component
public class ATask implements IATask {@Scheduled(cron="0/10 * * * * ?")public void aTask() {try {Thread.sleep(20000);} catch (InterruptedException e) {e.printStackTrace();}DateFormat df = new SimpleDateFormat("HH:mm:ss");System.out.println(df.format(new Date()) + "********A任务每10秒执行一次进入测试");}}

  Class : BTask

package com.xindatai.ibs.liang;import java.text.SimpleDateFormat;
import java.util.Date;import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class BTask implements IBTask {@Scheduled(cron="0/5 * * * * ?")public void bTask() {System.out.println(new SimpleDateFormat("HH:mm:ss").format(new Date()) + "********B任务每5秒执行一次进入测试");}}

  Console :

20:11:50********A任务每10秒执行一次进入测试
20:11:50********B任务每5秒执行一次进入测试
20:11:55********B任务每5秒执行一次进入测试
20:12:00********B任务每5秒执行一次进入测试
20:12:20********A任务每10秒执行一次进入测试
20:12:20********B任务每5秒执行一次进入测试
20:12:25********B任务每5秒执行一次进入测试
20:12:30********B任务每5秒执行一次进入测试
20:12:50********A任务每10秒执行一次进入测试
20:12:50********B任务每5秒执行一次进入测试
20:12:55********B任务每5秒执行一次进入测试
20:13:20********A任务每10秒执行一次进入测试
20:13:20********B任务每5秒执行一次进入测试
20:13:25********B任务每5秒执行一次进入测试
20:13:50********A任务每10秒执行一次进入测试
20:13:50********B任务每5秒执行一次进入测试
20:13:55********B任务每5秒执行一次进入测试
20:14:00********B任务每5秒执行一次进入测试
20:14:20********A任务每10秒执行一次进入测试
20:14:20********B任务每5秒执行一次进入测试
20:14:25********B任务每5秒执行一次进入测试
20:14:30********B任务每5秒执行一次进入测试
20:14:50********A任务每10秒执行一次进入测试
20:14:50********B任务每5秒执行一次进入测试
20:14:55********B任务每5秒执行一次进入测试
20:15:20********A任务每10秒执行一次进入测试
20:15:20********B任务每5秒执行一次进入测试
20:15:25********B任务每5秒执行一次进入测试
20:15:30********B任务每5秒执行一次进入测试
20:15:50********A任务每10秒执行一次进入测试
20:15:50********B任务每5秒执行一次进入测试
20:15:55********B任务每5秒执行一次进入测试
20:16:00********B任务每5秒执行一次进入测试
20:16:20********A任务每10秒执行一次进入测试
20:16:20********B任务每5秒执行一次进入测试
20:16:25********B任务每5秒执行一次进入测试
20:16:30********B任务每5秒执行一次进入测试
20:16:50********A任务每10秒执行一次进入测试
20:16:50********B任务每5秒执行一次进入测试
20:16:55********B任务每5秒执行一次进入测试
20:17:20********A任务每10秒执行一次进入测试
20:17:20********B任务每5秒执行一次进入测试
20:17:25********B任务每5秒执行一次进入测试
20:17:30********B任务每5秒执行一次进入测试
20:17:50********A任务每10秒执行一次进入测试
20:17:50********B任务每5秒执行一次进入测试
20:17:55********B任务每5秒执行一次进入测试
20:18:20********A任务每10秒执行一次进入测试
20:18:20********B任务每5秒执行一次进入测试
20:18:25********B任务每5秒执行一次进入测试
20:18:50********A任务每10秒执行一次进入测试
20:18:50********B任务每5秒执行一次进入测试
20:18:55********B任务每5秒执行一次进入测试
20:19:00********B任务每5秒执行一次进入测试
20:19:20********A任务每10秒执行一次进入测试
20:19:20********B任务每5秒执行一次进入测试
20:19:25********B任务每5秒执行一次进入测试
20:19:30********B任务每5秒执行一次进入测试
20:19:50********A任务每10秒执行一次进入测试
20:19:50********B任务每5秒执行一次进入测试
20:19:55********B任务每5秒执行一次进入测试
20:20:20********A任务每10秒执行一次进入测试
20:20:20********B任务每5秒执行一次进入测试
20:20:25********B任务每5秒执行一次进入测试
20:20:50********A任务每10秒执行一次进入测试
20:20:50********B任务每5秒执行一次进入测试
20:20:55********B任务每5秒执行一次进入测试
20:21:00********B任务每5秒执行一次进入测试
20:21:20********A任务每10秒执行一次进入测试
20:21:20********B任务每5秒执行一次进入测试
20:21:25********B任务每5秒执行一次进入测试
20:21:50********A任务每10秒执行一次进入测试
20:21:50********B任务每5秒执行一次进入测试
20:21:55********B任务每5秒执行一次进入测试
20:22:20********A任务每10秒执行一次进入测试
20:22:20********B任务每5秒执行一次进入测试
20:22:25********B任务每5秒执行一次进入测试
20:22:30********B任务每5秒执行一次进入测试
20:22:50********A任务每10秒执行一次进入测试
20:22:50********B任务每5秒执行一次进入测试
20:22:55********B任务每5秒执行一次进入测试
20:23:00********B任务每5秒执行一次进入测试
20:23:20********A任务每10秒执行一次进入测试
20:23:20********B任务每5秒执行一次进入测试
20:23:25********B任务每5秒执行一次进入测试

spring的定时任务默认是单线程多个任务执行起来时间会有问题:B任务会因为A任务执行起来需要20S而被延后20S执行

(一)在xml里加入task的命名空间

(二)启用注解驱动的定时任务

<?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:task="http://www.springframework.org/schema/task"xsi:schemaLocation="http://www.springframework.org/schema/beans classpath:/org/springframework/beans/factory/xml/spring-beans-4.1.xsd  http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.1.xsd"><!-- 启用annotation方式 --><task:annotation-driven scheduler="myScheduler" /><!-- 配置任务线程池 --><task:scheduler id="myScheduler" pool-size="5" /></beans>

  Console :

啦啦啦

啦啦啦

啦啦啦

啦啦啦

package com.xindatai.ibs.liang;
import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;
import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Component;
@Componentpublic class ATask implements IATask {
@Scheduled(cron="0/10 * * * * ?")public void aTask() {try {Thread.sleep(20000);} catch (InterruptedException e) {e.printStackTrace();}DateFormat df = new SimpleDateFormat("HH:mm:ss");System.out.println(df.format(new Date()) + "********A任务每10秒执行一次进入测试");}
}

spring定时任务详解(@Scheduled注解)多线程讲解相关推荐

  1. 微服务开发的入门级框架Spring Boot详解:注解

    2019独角兽企业重金招聘Python工程师标准>>> 通过前两章节的介绍,大家应该对Spring Boot有了些许的认识,也感觉到了这个框架带来的便利,下面我将讲解SpringBo ...

  2. spring定时任务详解spring schedule和spring-quartz

    从实现的技术上来分类,java定时任务目前主要有三种: Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务.使用这种方式可以让你的程序按照某 ...

  3. Spring整合Schedule定时任务详解

    Spring整合Schedule定时任务详解 Spring 定时任务官方网站 一.概述 用Spring,就是为了简单. 但是我还是要总结下java定时任务实现的几种方式. 1.TimerTask,等于 ...

  4. Spring入门详解

    typora-copy-images-to: upload Spring入门详解 Spring框架是Java开发中最常用的框架,功能非常强大 源码下载:Spring Framework jar包.文档 ...

  5. Spring IoC详解

    Spring IoC详解 原文地址:Spring IoC详解 写在最前 本文将主要写Spring最核心的部分,为什么写这篇的原因也是因为在刚开始学习Spring的时候,学得太粗糙了.感觉学了个皮毛,从 ...

  6. Spring 体系结构详解

    Spring 体系结构详解 核心容器(Core Container) Core和Beans模块提供了Spring最基础的功能,提供IOC和依赖注入特性.这里的基础概念是BeanFactory,它提供对 ...

  7. springMVC详解以及注解说明

    springMVC详解以及注解说明 基于注释(Annotation)的配置有越来越流行的趋势,Spring 2.5 顺应这种趋势,提供了完全基于注释配置 Bean.装配 Bean 的功能,您可以使用基 ...

  8. [转载]Spring配置文件详解一:

    2019独角兽企业重金招聘Python工程师标准>>> 原文地址:Spring配置文件详解一:<context:annotation-config/>与<conte ...

  9. java注解 源码_详解Java注解教程及自定义注解

    详解Java注解教程及自定义注解 更新时间:2016-02-26 11:47:06   作者:佚名   我要评论(0) Java注解提供了关于代码的一些信息,但并不直接作用于它所注解的代码内容.在这个 ...

最新文章

  1. 如何将模糊的扫描版pdf转为清晰的pdf或word_pdf问题小结
  2. Objective-C 执行外部命令
  3. python修改类的属性值_python 四种方法修改类变量,实例对象调用类方法改变类属性的值,类对象调用类方法改变类属性的值,调用实例方法改变类属性的值,直接修改类属性的值...
  4. Groovy 1.5.7 出现java.lang.LinkageError问题
  5. 关于重复接收NSNotificationCenter发送的通知的问题
  6. mysql复制主从集群搭建
  7. 诺贝尔得主没钱付医药费 凄凉离世
  8. 使用tkinter模块在Python中进行GUI编程
  9. (42)FPGA四种常用逻辑门(同或门)
  10. formvalidation表单验证
  11. 计算机怎么把文字转换成表格,如何将EXCEL的图片转换成excel表格或者文字?,Word将文字转化成表格...
  12. android webview输入框_Android WebView 软键盘挡住输入框
  13. 3DMAX场景渲染失败怎么办?
  14. 游戏外挂开发原理初探——植物大战僵尸内存挂为例
  15. 深度学习笔记(八)—— 正则化[Regularization]
  16. React中Mpegts播放器的使用
  17. 东东助手显示无法连接服务器,《东东助手》模拟器常见问题及解决办法
  18. C++之详解coredump
  19. 模型预测控制(MPC)+逻辑控制(相平面分区控制)--matlab例程介绍
  20. 数据库SQLServer的视图

热门文章

  1. 最简单的基于FFMPEG的推流器附件:收流器
  2. 使用 Minidumps 和 Visual Studio .NET 进行崩溃后调试
  3. 基于原始套接字的嗅探器
  4. C++异常处理try throw catch
  5. Python UDP聊天器
  6. Memcached安装与配置
  7. JAVA多线程之UncaughtExceptionHandler——处理非正常的线程中止
  8. SpringMVC + Apache POI 实现WEB中Excel下载功能
  9. 音视频领域或将开启”外卷“之路
  10. 专访快手传输算法负责人周超博士:LAS标准的推出离不开信念感