文档章节

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

木云凌
 木云凌
发布于 2016/12/09 17:32
字数 571
阅读 23
收藏 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

© 著作权归作者所有

共有 人打赏支持
木云凌

木云凌

粉丝 14
博文 84
码字总数 30512
作品 0
广州
高级程序员
私信 提问
分布式定时任务框架---Uncode Schedule

分布式定时任务框架---Uncode Schedule rabbitGYK 关注 2016.11.27 20:36* 字数 1446 阅读 7141评论 5喜欢 36赞赏 1 博客原文 作为一个支付公司的项目组,经常会有很多对账功能(签约对账、支...

晨猫
11/02
0
0
SpringMVC框架使用注解执行定时任务

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

Carl_
2015/07/23
0
0
用Spring定时器写了个程序,查询数据库固定次数后,内存溢出

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

颜可
2014/07/23
4.3K
4
SPRING 定时器应用,使用定时器发送邮件

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

香吉士
2014/06/12
0
10
Spring quartz定时器动态多任务实现

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

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

没有更多内容

加载失败,请刷新页面

加载更多

Ugly Number(leetcode263)

Write a program to check whether a given number is an ugly number. Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. Example 1: Input: 6Output: true......

woshixin
11分钟前
0
0
深度模型从研者 眼里的 似然估计 & Hessain 海森矩阵 & Fisher Information (费雪信息)

深度模型的训练的基本依据是最小化模型拟合数据的误差。旨在不仅知其然(如何构建和训练一个深度模型),还应知其所以然(为什么这样训练,可以做哪些优化)。我们就会发现,有很多研究者,在...

刘小米_思聪
15分钟前
0
0
阿里巴巴智能监控新场景的探索

摘要: 智能监控是智能运维的子领域,详细分析。 作者简介 王肇刚 阿里巴巴全球运行指挥中心高级技术专家 智能监控是智能运维的子领域,我们说的监控,探讨的更多是在监控策略,因为可能从数...

阿里云官方博客
18分钟前
1
0
【双十二】12 月 12 日 12 点 12 分限量抢福利,云计算不剁手!

活动详情 1.首充豪礼 双十二当日,新用户首充 200 元送 200 元代金券!仅限前 88 名!先到先得!拼手速!(新用户指 12 月 12 日前已完成注册但从未充值过的用户)
 2.超值返券 双十二当日,...

七牛云
43分钟前
3
0
Calculate Linux 发布 18 LXQt是基于Gentoo的发行版

导读 Calculate Linux 是一个基于 Gentoo 并与 Gentoo 完全兼容的滚动更新发行版家族,专为企业环境下的快速部署而优化。其提供多个不同的分支版本,分别适用于桌面、服务器等应用场景。该项...

问题终结者
46分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部