cto有如下需求:
要求各team leader(每人负责网站的一个行业栏目)将各项目部的数据从后台管理查询汇总并使用excel整理以附件形式发送至cto(发送时间不限),貌似数据量很大,自己统计要疯,于是乎,写定时器执行无疑是个好选择,那我的需求就很简单了,
首先,由于是门户网站,数据量访问较大,所以只能选择深夜“悄悄地”。。。。。
1、每天凌晨3点钟启动“数据提取”timer,其负责 :
1) 分类汇总数据;
2) 持久化到数据库;
2、每天凌晨4点钟启动“发送邮件”timer,主要用来将数据库里汇总好的相应数据提取并e-mail给cto
timer关键代码:
我选择使用annotation方式,代码简单轻巧,
1) 在spring配置文件的xmlns和xsi:schemaLocation声明处分别添加
task="http://www.springframework.org/schema/task" 和 http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd
2) 开启task任务扫描注解
<task:annotation-driven/>
3) 开启annotation,并配置扫描位置
<context:annotation-config /> <context:component-scan base-package="com.sina" />
4) 接口:SpringTimerService
/** * spring 定时器接口 * @author Jar chang */ public interface SpringTimerService { /** * 数据提取定时器 */ public void runDataCollectionTimer(); /** * 发送邮件定时器 */ public void runSendStatisticsEmailTimer(); }
5) service实现
@Component public class SpringTimerServiceImpl implements SpringTimerService{ @Resource private SpringTimerDao springTimerDaoImpl; @Override @Scheduled(cron="0 0 3 * * ?") //此处配置定时器具体的生效时间,关于cron表达式很简单:请百度 public void runDataCollectionTimer() { springTimerDaoImpl.runCollection(); //。。。。代码略 } @Override @Scheduled(cron="0 0 4 * * ?") public void runSendStatisticsEmailTimer() { springTimerDaoImpl.runSendEmail(); //。。。。代码略 } }
6) dao层是具体的从数据库取数据以及发送邮件的代码,网上一大堆,就不多做声明了#11
需要注意的地方:
1) 定时器任务方法不能有返回值
2) spring的@Scheduled注解必须写在实现类上
3) 定时任务不能启动请检查spring配置文件中的default-lazy-init="true",将其修改为false,因为默认懒
加载的情况定时器不会执行
相关推荐
spring定时任务配置详解实例 spting 定时器的配置实例
Spring两种定时器实例配置:Java的TimerTask类和OpenSymphony的Quartz。包含5种配置方式:timer普通定时器、timer特定方法定时器、quartz简单定时器、quartz精确定时器、quartz特定方法定时器。简单实用,一看就会。
spring定时器配置,运行示例的完整资源项目实例、希望对大家有帮助!
本代码是定时器的实例,两种运行模式,一种是直接以Java程序的形式运行,指定加载的配置文件;另一种是在tomcat下运行
传统Spring+Quartz实现的定时器一般都是通过配置文件中配置的,这就意味着如果我们修改了定时任务的时间,就得重新启动一下Tomcat,而且每次新建一个任务就得在spring中添加相关的配置信息,非常麻烦。基于上面的...
Spring定时任务,里面有多个实例,配置形式的 还有注解实现的,还有quartz和Spring实现的,希望对大家有用
spring-boot 2.0.2.RELEASE,将定时任务配置在数据库,启动项目的时候,用mybatis读取数据库,实例化对象,并设定定时任务。如果需要新增,减少,修改定时任务,仅需要修改数据库资料,并重启项目即可,无需改代码。...
commons-collections.jar commons-logging.jar jta.jar log4j-1.2.14.jar quartz-all-1.6.0.jar spring-asm-3.2.0.M1.jar spring-beans-3.2.0.M1.jar ...以上是jar列表,如果需要实例或配置信息给我留言
本篇文章主要介绍了Spring Task定时任务的配置和使用详解,实例分析了Spring Task定时任务的配置和使用的技巧,非常具有实用价值,需要的朋友可以参考下
NULL 博文链接:https://medbricom.iteye.com/blog/1782765
基本配置,数据源,多数据源 项目工程: Mybatis 项目工程: , mybatis加 项目工程: 项目工程: , influxdb时序数据库-项目工程: , 项目工程 基础环境 mongoTemplate使用姿势 项目工程: 基本环境...
简单SSM项目整合,用SSM框架实现用户表的增,删,改 ,查,用到AOP面向切面事务,事务 , 以及事务通知,SpringMVC定时器 ,dataSource配置,注解。
一个quartz的任务调度简单实例,内附spring配置和所需jar包,需要的朋友可以下载看看
像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...
像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...
jBPM4与Spring框架集成 296 18.1 集成的目标 297 18.2 为集成配置jBPM4 297 18.3 为集成配置Spring 299 18.4 使用 301 18.5 测试 302 18.6 小结 302 第19章 jBPM4与JBoss应用服务器集成 303 19.1 流程定义打包部署 ...
流程管理 :导⼊导出流程资源⽂件、查看流程图、根据流程实例反射出流程模型、激活挂起 、⾃由跳转 3.运⾏中流程:查看流程信息、当前任务节点、当前流程图、作废暂停流程、指派待办⼈ 4.历史的流程:查看流程信息、...
第三章、配置 ........................................................................................................................................................................... 8 3.1 创建...