文档章节

使用Spring框架写定时器(定时任务)

木云凌
 木云凌
发布于 2016/12/09 17:32
字数 571
阅读 23
收藏 0
点赞 0
评论 0

首先spring.xml文件中必须有以下信息的最后三行

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:jee="http://www.springframework.org/schema/jee" 
	xsi:schemaLocation="http://www.springframework.org/schema/beans   
		http://www.springframework.org/schema/beans/spring-beans.xsd   
		http://www.springframework.org/schema/context   
		http://www.springframework.org/schema/context/spring-context-3.2.xsd   
		http://code.alibabatech.com/schema/dubbo     
		http://code.alibabatech.com/schema/dubbo/dubbo.xsd  
		http://www.springframework.org/schema/aop   
		http://www.springframework.org/schema/aop/spring-aop-3.2.xsd   
		http://www.springframework.org/schema/jee   
		http://www.springframework.org/schema/jee/spring-jee-3.2.xsd 
		http://www.springframework.org/schema/tx   
		http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
		
		http://www.springframework.org/schema/task
     	http://www.springframework.org/schema/task/spring-task-3.0.xsd"
		
	xmlns:task="http://www.springframework.org/schema/task">

以及加上以下注解:

	<!-- 	任务扫描注解 -->
	<task:executor id="executor" pool-size="5" />  
	<task:scheduler id="scheduler" pool-size="10" />  
	<task:annotation-driven executor="executor" scheduler="scheduler" />

接着就写一个用@Component注解的普通java类即可

@Component
public class ContractTimer {

其中需要执行的方法则使用@Scheduled注解,那么这个方法就会在配置好的时间点上自动执行

	/**
	 * 定时检查创建时间是否已过48小时(两天),如果过期则自动设为作废(每天的每小时都执行一次) 
	 * fixedRate = 1000 * 60 * 60 * 24  每天执行一次
	 * fixedDelay=1000*60*2                       启动后2分钟执行
	 * cron = "0 0 3 * * *" 		     每天凌晨3点执行  秒分时天月星期(1-7)
	 * 三个只能写一个
	 * @throws IOException
	 */
//	@Scheduled(cron = "0 0 1,7,11,19 * * *")
	@Scheduled(cron = "0 20 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 * * *")
	public void updPushIndex(){

这个注解的配置使用说明如下:@Scheduled(cron = "0 0 1,7,11,19 * * *")里的cron参数是具体的时间点,小括号内是六个参数(也可以是七个),用空格号隔开,这六个参数分别对应:

秒(0~59)  

分钟(0~59)  

小时(0~23)

天(月)(0~31,但是需要考虑月的天数)  

月(0~11)

天(星期)(【1~7 1=SUN】 或【SUN,MON,TUE,WED,THU,FRI,SAT】)

第七个(可不配):年份(1970-2099)

【每个参数都可以配多个时间点,参考上述代码例子】

最后必须重复提醒,xml文件的配置是必不可少的,如果只会写代码而不知道去配置的话是没有半点用处的

其次,之前在网上转了个相关博客,感觉说得也比较详细的:https://my.oschina.net/watsonos/blog/796688

© 著作权归作者所有

共有 人打赏支持
木云凌

木云凌

粉丝 11
博文 73
码字总数 28357
作品 0
广州
高级程序员
Spring学习——Spring MVC 中定时器实现

在一些工作需要使用到定时器,Spring很好的集成了定时器的功能! 在Spring 中使用Quartz,本文介绍Spring3.0以后自主开发的定时任务工具,spring task,可以将它比作一个轻量级的Quartz,而且...

IT达仁 ⋅ 05/10 ⋅ 0

SpringMVC框架使用注解执行定时任务

在项目开发过程中,免不了会有一些定时任务。今天就给大家一个SpringMVC框架中利用注解的方式执行定时任务的示例代码 使用到的JAR文件: 点击下列Jar文件会跳到我的网盘下载 aopalliance-1....

Carl_ ⋅ 2015/07/23 ⋅ 0

从Spring-Session源码看Session机制的实现细节

去年我曾经写过几篇和 Spring Session 相关的文章,从一个未接触过 Spring Session 的初学者视角介绍了 Spring Session 如何上手,如果你未接触过 Spring Session,推荐先阅读下「从零开始学...

徐靖峰 ⋅ 04/20 ⋅ 0

用Spring定时器写了个程序,查询数据库固定次数后,内存溢出

该程序是用Spring定时器执行的,定时用hibernate框架查询数据库,将查询到的结果写成文本文件。 启动定时器之后每次在生成了52个文本文件之后,就内存溢出了。 由于代码不多我直接贴代码和错...

颜可 ⋅ 2014/07/23 ⋅ 4

Java Web定时任务这一篇就够了

一、Java定时任务 1、Timer 包下面一个工具类,从1.3开始便支持了; 说明下后两个参数分别是delay延迟执行,和period执行间隔,单位都是毫秒。 2、ScheduledExecutorService 包下面,从1.5开...

叫我宫城大人 ⋅ 04/16 ⋅ 0

分布式定时任务Elastic-Job框架在SpringBoot工程中的应用实践(一)

摘要:如何构建具备作业分片和弹性扩缩容的定时任务系统是每个大型业务系统在设计时需要考虑的重要问题? 对于构建一般的业务系统来说,使用Quartz或者Spring Task即可基本满足我们的单体服用...

癫狂侠 ⋅ 05/12 ⋅ 0

定时任务发展史(一)

定时任务是互联网行业里最常用的服务之一,本文给大家介绍定时任务在我司的发展历程。 linux系统中一般使用crontab命令来实现,在Java世界里,使用最广泛的就是quartz了。我司使用quartz就已...

ityouknow ⋅ 2017/07/05 ⋅ 0

Spring quartz定时器动态多任务实现

项目中经常会碰到需要定时执行的任务,并且需要执行什么任务,以及任务执行的时间都由用户自定义的需求。quartz是比较常用的定时器工具,并且在spring框架中也已经做了很好的集成,所以在以s...

凯文加内特 ⋅ 2015/06/27 ⋅ 0

SPRING 定时器应用,使用定时器发送邮件

Spring 的强大又体现出来了,相较于 JDK 定时器来说 SPRING 定时器可以做的更多更好,使用起来也相对复杂,今天就为大家带来一个简易版的定时器,并且使用他实现定时邮件发送功能。 具体详细...

香吉士 ⋅ 2014/06/12 ⋅ 10

spring定时任务初体验

定时任务很简单,就是设置某个时间点,或者是每隔一段时间执行的任务。 我是通过spring注解来配置的,下面记录下配置过程: 首先要做的是添加命名空间及描述: xmlns:task="http://www.sprin...

another_yu ⋅ 2015/11/25 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

笔试题之Java基础部分【简】【一】

基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法,其他 1.length、length()和size() length针对...

anlve ⋅ 25分钟前 ⋅ 2

table eg

user_id user_name full_name 1 zhangsan 张三 2 lisi 李四 `` ™ [========] 2018-06-18 09:42:06 星期一½ gdsgagagagdsgasgagadsgdasgagsa...

qwfys ⋅ 50分钟前 ⋅ 0

一个有趣的Java问题

先来看看源码: public class TestDemo { public static void main(String[] args) { Integer a = 10; Integer b = 20; swap(a, b); System.out......

linxyz ⋅ 54分钟前 ⋅ 0

十五周二次课

十五周二次课 17.1mysql主从介绍 17.2准备工作 17.3配置主 17.4配置从 17.5测试主从同步 17.1mysql主从介绍 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主...

河图再现 ⋅ 今天 ⋅ 0

docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312 ⋅ 今天 ⋅ 0

OSChina 周一乱弹 —— 快别开心了,你还没有女友呢。

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享吴彤的单曲《好春光》 《好春光》- 吴彤 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :小萝莉街上乱跑,误把我认错成...

小小编辑 ⋅ 今天 ⋅ 8

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

Linux下php访问远程ms sqlserver

1、安装freetds(略,安装在/opt/local/freetds 下) 2、cd /path/to/php-5.6.36/ 进入PHP源码目录 3、cd ext/mssql进入MSSQL模块源码目录 4、/opt/php/bin/phpize生成编译配置文件 5、 . ./...

wangxuwei ⋅ 昨天 ⋅ 0

如何成为技术专家

文章来源于 -- 时间的朋友 拥有良好的心态。首先要有空杯心态,用欣赏的眼光发现并学习别人的长处,包括但不限于工具的使用,工作方法,解决问题以及规划未来的能力等。向别人学习的同时要注...

长安一梦 ⋅ 昨天 ⋅ 0

Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令...

刘祖鹏 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部