`
wengcang
  • 浏览: 14284 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring 定时器配置实例

阅读更多

        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定时任务配置详解.doc

    spring定时任务配置详解实例 spting 定时器的配置实例

    Spring定时器实例(Java的Timer类和OpenSymphony的Quartz)

    Spring两种定时器实例配置:Java的TimerTask类和OpenSymphony的Quartz。包含5种配置方式:timer普通定时器、timer特定方法定时器、quartz简单定时器、quartz精确定时器、quartz特定方法定时器。简单实用,一看就会。

    spring定时器

    spring定时器配置,运行示例的完整资源项目实例、希望对大家有帮助!

    spring+quartz+maven项目实例

    本代码是定时器的实例,两种运行模式,一种是直接以Java程序的形式运行,指定加载的配置文件;另一种是在tomcat下运行

    【quartz动态定时任务】项目实例.zip

    传统Spring+Quartz实现的定时器一般都是通过配置文件中配置的,这就意味着如果我们修改了定时任务的时间,就得重新启动一下Tomcat,而且每次新建一个任务就得在spring中添加相关的配置信息,非常麻烦。基于上面的...

    Spring定时任务(多个实例)

    Spring定时任务,里面有多个实例,配置形式的 还有注解实现的,还有quartz和Spring实现的,希望对大家有用

    spring-boot 2.0.2 数据库配置定时任务

    spring-boot 2.0.2.RELEASE,将定时任务配置在数据库,启动项目的时候,用mybatis读取数据库,实例化对象,并设定定时任务。如果需要新增,减少,修改定时任务,仅需要修改数据库资料,并重启项目即可,无需改代码。...

    spring定时任务必须要的10个jar包

    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定时任务的配置和使用详解,实例分析了Spring Task定时任务的配置和使用的技巧,非常具有实用价值,需要的朋友可以参考下

    完美解决多应用服务器负载均衡环境下spring quartz同一定时任务重复执行问题

    NULL 博文链接:https://medbricom.iteye.com/blog/1782765

    spring-boot-demo:Spring Boot和Spring Cloud和Spring Security演示案例(Spring学习示例实战项目)

    基本配置,数据源,多数据源 项目工程: Mybatis 项目工程: , mybatis加 项目工程: 项目工程: , influxdb时序数据库-项目工程: , 项目工程 基础环境 mongoTemplate使用姿势 项目工程: 基本环境...

    SSM项目整合案例

    简单SSM项目整合,用SSM框架实现用户表的增,删,改 ,查,用到AOP面向切面事务,事务 , 以及事务通知,SpringMVC定时器 ,dataSource配置,注解。

    quartz任务调度

    一个quartz的任务调度简单实例,内附spring配置和所需jar包,需要的朋友可以下载看看

    JAVA上百实例源码以及开源项目源代码

    像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...

    JAVA上百实例源码以及开源项目

    像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...

    JBPM4工作流应用开始指南.rar

    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 流程定义打包部署 ...

    javaOA办公系统模块设计方案.pdf

    流程管理 :导⼊导出流程资源⽂件、查看流程图、根据流程实例反射出流程模型、激活挂起 、⾃由跳转 3.运⾏中流程:查看流程信息、当前任务节点、当前流程图、作废暂停流程、指派待办⼈ 4.历史的流程:查看流程信息、...

    Activiti5用户指南(中文版)

    第三章、配置 ........................................................................................................................................................................... 8 3.1 创建...

Global site tag (gtag.js) - Google Analytics