一、在dispatcher-servlet.xml中增加定时任务扫描路径和其余配置信息

xmlns:task="http://www.springframework.org/schema/task"
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd
 <!--集成注解schedule-->
<context:component-scan base-package="com.slp.task"/>
<task:executor id="executor" pool-size="5"/>
<!--配置线程池-->
<task:scheduler id="scheduler" pool-size="10"/>
<!--开启task注解-->
<task:annotation-driven scheduler="scheduler" executor="executor"/>
<!--集成注解schedule-->

  

二、使用示例

package com.slp.task;

import org.apache.log4j.Logger;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; /**
* @author sanglp
* @create 2018-02-02 11:23
* @desc 设置多个定时任务示例
**/ @Component
public class DemoTask2 {
private Logger log = Logger.getLogger(DemoTask2.class); int i=0 ;
int j=0;
int k=0; /**
* @Scheduled可以作为一个触发源添加到一个方法中,以一个固定的时间延迟调用一次执行,这个周期是以上一个调度任务的完成时间为基准,在上一个任务完成之后5s后再次执行
*/
@Scheduled(fixedDelay = 5000)//@Scheduled可以作为一个触发源添加到一个方法中,以一个固定的时间延迟调用一次执行,这个周期是以上一个调度任务的完成时间为基准,在上一个任务完成之后5s后再次执行
public void demo1(){
log.info("定时任务1开始执行啦!!!");
long begin = System.currentTimeMillis();
i=i+1;
System.out.println("我是小i我要长大了"+i); long end = System.currentTimeMillis(); log.info("定时任务1执行结束,花费时间为"+(end-begin)+"毫秒");
} /**
* 以一个固定延迟时间5秒中调用一次执行,这个周期是以上一个任务开始时间为基准,从上一个任务开始执行后5s再次调用
*/
@Scheduled(fixedRate = 5000)
public void demo2(){
log.info("定时任务2开始执行啦!!!");
long begin = System.currentTimeMillis();
j=j+1;
System.out.println("我是小j我要长大了"+j); long end = System.currentTimeMillis(); log.info("定时任务2执行结束,花费时间为"+(end-begin)+"毫秒");
} /**
* 在特定的时间执行,使用cron表达式
*/
@Scheduled(cron = "0 34 11 * * ?")
public void demok(){
log.info("定时任务3开始执行啦!!!");
long begin = System.currentTimeMillis();
k=k+1;
System.out.println("我是小k我要长大了"+k); long end = System.currentTimeMillis(); log.info("定时任务3执行结束,花费时间为"+(end-begin)+"毫秒");
}
}

  日志信息:

定时任务1开始执行啦!!!
我是小i我要长大了7
[INFO ] 2018-02-02 13:09:08,378 method:com.slp.task.DemoTask2.demo1(DemoTask2.java:34)
定时任务1执行结束,花费时间为0毫秒
[INFO ] 2018-02-02 13:09:13,273 method:com.slp.task.DemoTask2.demo2(DemoTask2.java:42)
定时任务2开始执行啦!!!
我是小j我要长大了1
[INFO ] 2018-02-02 13:09:13,273 method:com.slp.task.DemoTask2.demo2(DemoTask2.java:50)
定时任务2执行结束,花费时间为0毫秒
[INFO ] 2018-02-02 13:09:13,389 method:com.slp.task.DemoTask2.demo1(DemoTask2.java:27)
定时任务1开始执行啦!!!
我是小i我要长大了8
[INFO ] 2018-02-02 13:09:13,401 method:com.slp.task.DemoTask2.demo1(DemoTask2.java:34)
定时任务1执行结束,花费时间为0毫秒
[INFO ] 2018-02-02 13:09:18,249 method:com.slp.task.DemoTask2.demo2(DemoTask2.java:42)
定时任务2开始执行啦!!!
我是小j我要长大了1
[INFO ] 2018-02-02 13:09:18,249 method:com.slp.task.DemoTask2.demo2(DemoTask2.java:50)
定时任务2执行结束,花费时间为0毫秒
[INFO ] 2018-02-02 13:09:18,402 method:com.slp.task.DemoTask2.demo1(DemoTask2.java:27)
定时任务1开始执行啦!!!
我是小i我要长大了9
[INFO ] 2018-02-02 13:09:18,402 method:com.slp.task.DemoTask2.demo1(DemoTask2.java:34)
定时任务1执行结束,花费时间为0毫秒
[INFO ] 2018-02-02 13:09:23,248 method:com.slp.task.DemoTask2.demo2(DemoTask2.java:42)
定时任务2开始执行啦!!!
我是小j我要长大了1
[INFO ] 2018-02-02 13:09:23,248 method:com.slp.task.DemoTask2.demo2(DemoTask2.java:50)
定时任务2执行结束,花费时间为0毫秒
[INFO ] 2018-02-02 13:09:23,403 method:com.slp.task.DemoTask2.demo1(DemoTask2.java:27)
定时任务1开始执行啦!!!
我是小i我要长大了10
[INFO ] 2018-02-02 13:09:23,403 method:com.slp.task.DemoTask2.demo1(DemoTask2.java:34)
定时任务1执行结束,花费时间为0毫秒
[INFO ] 2018-02-02 13:09:28,271 method:com.slp.task.DemoTask2.demo2(DemoTask2.java:42)
定时任务2开始执行啦!!!
我是小j我要长大了1
[INFO ] 2018-02-02 13:09:28,271 method:com.slp.task.DemoTask2.demo2(DemoTask2.java:50)
定时任务2执行结束,花费时间为0毫秒
[INFO ] 2018-02-02 13:09:28,427 method:com.slp.task.DemoTask2.demo1(DemoTask2.java:27)
定时任务1开始执行啦!!!
我是小i我要长大了11
[INFO ] 2018-02-02 13:09:28,428 method:com.slp.task.DemoTask2.demo1(DemoTask2.java:34)
定时任务1执行结束,花费时间为0毫秒
[INFO ] 2018-02-02 13:09:33,250 method:com.slp.task.DemoTask2.demo2(DemoTask2.java:42)
定时任务2开始执行啦!!!
我是小j我要长大了1
[INFO ] 2018-02-02 13:09:33,250 method:com.slp.task.DemoTask2.demo2(DemoTask2.java:50)
定时任务2执行结束,花费时间为0毫秒
[INFO ] 2018-02-02 13:09:33,428 method:com.slp.task.DemoTask2.demo1(DemoTask2.java:27)
定时任务1开始执行啦!!!
我是小i我要长大了12
[INFO ] 2018-02-02 13:09:33,428 method:com.slp.task.DemoTask2.demo1(DemoTask2.java:34)
定时任务1执行结束,花费时间为0毫秒
[INFO ] 2018-02-02 13:09:38,291 method:com.slp.task.DemoTask2.demo2(DemoTask2.java:42)
定时任务2开始执行啦!!!
我是小j我要长大了1
[INFO ] 2018-02-02 13:09:38,291 method:com.slp.task.DemoTask2.demo2(DemoTask2.java:50)
定时任务2执行结束,花费时间为0毫秒

  

三、cron表达式

一个cron表达式有至少6个(也可能是7个)有空格分隔的时间元素

按顺序依次为:

  1. 秒(0~59)
  2. 分钟(0~59)
  3. 小时(0~23)
  4. 天(0~31)
  5. 月(0~11)
  6. 星期(1~7 SUN MON TUE WED THU FRI SAT)
  7. 年份(1970-2099)

【Spring系列】spring mvc整合任务调度的更多相关文章

  1. Spring 系列: Spring 框架简介 -7个部分

    Spring 系列: Spring 框架简介 Spring AOP 和 IOC 容器入门 在这由三部分组成的介绍 Spring 框架的系列文章的第一期中,将开始学习如何用 Spring 技术构建轻量级 ...

  2. Spring 系列: Spring 框架简介(转载)

    Spring 系列: Spring 框架简介 http://www.ibm.com/developerworks/cn/java/wa-spring1/ Spring AOP 和 IOC 容器入门 在 ...

  3. [JavaEE] IBM - Spring 系列: Spring 框架简介

    Spring AOP 和 IOC 容器入门 在这由三部分组成的介绍 Spring 框架的系列文章的第一期中,将开始学习如何用 Spring 技术构建轻量级的.强壮的 J2EE 应用程序.develop ...

  4. Spring 系列: Spring 框架简介

    Spring AOP 和 IOC 容器入门(转载) 在这由三部分组成的介绍 Spring 框架的系列文章的第一期中,将开始学习如何用 Spring 技术构建轻量级的.强壮的 J2EE 应用程序.dev ...

  5. 【Spring】Spring系列7之Spring整合MVC框架

    7.Spring整合MVC框架 7.1.web环境中使用Spring 7.2.整合MVC框架 目标:使用Spring管理MVC的Action.Controller 最佳实践参考:http://www. ...

  6. 【RabbitMQ系列】 Spring mvc整合RabbitMQ

    一.linux下安装rabbitmq 1.安装erlang环境 wget http://erlang.org/download/otp_src_18.2.1.tar.gz tar xvfz otp_s ...

  7. SSM 三大框架系列:Spring 5 + Spring MVC 5 + MyBatis 3.5 整合(附源码)

    之前整理了一下新版本的 SSM 三大框架,这篇文章是关于它的整合过程和项目源码,版本号分别为:Spring 5.2.2.RELEASE.SpringMVC 5.2.2.RELEASE.MyBatis ...

  8. Spring研磨分析、Quartz任务调度、Hibernate深入浅出系列文章笔记汇总

    Spring研磨分析.Quartz任务调度.Hibernate深入浅出系列文章笔记汇总 置顶2017年04月27日 10:46:45 阅读数:1213 这系列文章主要是对Spring.Quartz.H ...

  9. Java框架搭建-Maven、Mybatis、Spring MVC整合搭建

    1. 下载eclipse 到网站下载 http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/marsr 选择 ...

随机推荐

  1. Hibernate【映射】知识要点

    前言 前面的我们使用的是一个表的操作,但我们实际的开发中不可能只使用一个表的...因此,本博文主要讲解关联映射 集合映射 需求分析:当用户购买商品,用户可能有多个地址. 数据库表 我们一般如下图一样设 ...

  2. 新建.Net Core应用程序后引用项一直黄色感叹号怎么办?

    我们在vs中创建.Net Core应用程序后,引用项可能出现黄色感叹号,正常情况下,这种黄色感叹号时能在项目创建成功之后迅速消失的,可也有些时候一直不消失,怎么办? 我们可以选中异常的项目,然后右键菜 ...

  3. CSS3 2D、3D转换

    2D转换方法:transform().rotate().scale().skew().matrix() 3D转换方法:rotateX().rotateY() 1.示例代码 <!DOCTYPE h ...

  4. [Luogu4230]连体病原体

    题面戳我 sol 很好想+很好写的一道题,然而比赛中我还是没有切掉qaq. LCT 枚举左端点\(i\),向右移动右端点指针\(j\)找到第一个成环的位置.此时\([i,j],[i,j+1]...[i ...

  5. Luogu4149:[IOI2011]Race

    题目 bzoj权限题... Luogu Sol 点分治辣,边权非负,k>=1,开个\(1e6\)的桶就好辣 # include <bits/stdc++.h> # define RG ...

  6. CentOS 静态IP分配,提示Error, some other host already uses address解决办法

    (一)第一 修改 ifup-eth vi /etc/sysconfig/network-scripts/ifup-eth #if ! /sbin/arping -q -c 2 -w 3 -D -I $ ...

  7. 漫谈PID——实现与调参

    闲话: 作为一个控制专业的学生,说起PID,真是让我又爱又恨.甚至有时候会觉得我可能这辈子都学不会pid了,但是经过一段时间的反复琢磨,pid也不是很复杂.所以在看懂pid的基础上,写下这篇文章,方便 ...

  8. Spring @AfterReturning 总是返回null

    在学习Spring Aop时,遇到一个问题,当 @Around(环绕通知)与 @AfterReturning(后置通知)共存 时,@AfterReturning 通过属性 returning = &q ...

  9. windows下编译caffe报错:error MSB4062: 未能从程序集 E:\NugetPackages\OpenCV.2.4.10\......的解决办法

    参考博客:http://blog.csdn.net/u013277656/article/details/75040459 在windows上编译caffe时,用vs打开后会自动加载还原NugetPa ...

  10. RouterPassView——路由器密码查看工具

    大多数现代路由器都可以让您备份一个文件路由器的配置文件,然后在需要的时候从文件中恢复配置.路由器的备份文件通常包含了像您的ISP的用户名重要数据/密码,路由器的登录密码,无线网络的KEY. 如果你忘记 ...