spring task定时器笔记

定时器有两种方式

1.延迟启动

   <bean id="timerTaskRunnerChain" class="bingo.uam.task.TimerTaskRunnerChain">
        <property name="timerTasks">
            <list>
                <bean class="bingo.uam.task.XXXXTask"></bean>
            </list>
        </property>
    </bean>

    <bean id="btBuildTimerTask"
        class="org.springframework.scheduling.timer.ScheduledTimerTask">
        <!-- 设置启动延迟 -->
        <property name="delay">
            <value>3600000</value>   <!-- 1个小时后启动 -->
        </property>
        <!-- 后续延迟 -->
        <property name="period">
            <value>3600000</value>
        </property>
        <!-- 指定触发器信息 -->
        <property name="timerTask">
            <ref local="timerTaskRunnerChain" />
        </property>
    </bean>

    <!-- 使用TimerFactoryBean类,你可以让Spring使用配置创建触发器,并为一组指定的ScheduledTimerTask bean自动创建Timer实例。 -->
    <bean id="timerFactory"
        class="org.springframework.scheduling.timer.TimerFactoryBean">
        <property name="scheduledTimerTasks">
            <list>
                <ref local="btBuildTimerTask" />
            </list>
        </property>
    </bean>

 

2.某个设定时刻启动

   <!-- 配置Quartz, 用于凌晨2点启动 -->
    <bean id="blogTimerTask" class="bingo.uam.task.XXXXTask"/>
    <bean id="blogSchedulerJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="blogTimerTask"/>
        <property name="targetMethod" value="run"/> <!--启动的方法 -->
        <property name="concurrent" value="false"/>
    </bean>
    <bean id="blogCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean" >
         <property name="jobDetail" ref="blogSchedulerJobDetail"/>
         <property name="cronExpression">
              <!-- 秒 分 时 日 月 年  -->
             <value>0 0 2 * * ?</value> <!-- 每天两点启动 -->
         </property>
     </bean>
    <bean id="blogSchedulerFactory"  lazy-init="false" autowire="no"  class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref local="blogCronTrigger"/>
            </list>
        </property>
    </bean>

 

转载:http://www.cnblogs.com/lovesong/p/3574744.html

时间: 2024-09-17 04:51:18

spring task定时器笔记的相关文章

使用spring task定时器,被shiro拦截了,如何解决?

问题描述 使用spring task定时器,被shiro拦截了,如何解决? 大家好,现在用spring task 做定时任务,注解实现方式,但是在启动后,等待时间到时,却报错了,个人感觉貌似被shiro的访问拦截了. 找遍了google, 百度,无法解决,希望得到帮助,本人在线等. 解决方案 http://blog.csdn.net/zhujianpengzha/article/details/8140372 解决方案二: 在你的定时任务的代码中添加 org.apache.shiro.mgt.S

springmvc+spring web定时器

问题描述 springmvc+spring web定时器 web项目是spring+springmcv+myabties框架的. 一个配置文件是springconfig.xml 一个是springmvcconfig.xml 请问如何做一个定时任务.每5分钟执行一次.谢谢. 新手,所以各位有demo的尽量写完整. 解决方案 http://blog.csdn.net/xiao_wgs69/article/details/11269391 看看这个思路 解决方案二: 废话不说,上代码.........

spring quart 定时器问题

问题描述 spring quart 定时器问题 严重: Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'uploadFTP' defined in ServletContext resource [/WEB-INF/classes/applicationcontext.xml]: Cannot resolve

spring task 实现实现定时任务:动态暂停 恢复 修改和删除任务

问题描述 spring task 实现实现定时任务:动态暂停 恢复 修改和删除任务 以前是用spring+quartz的方式实现的定时任务:动态暂停 恢复 修改和删除任务. 但是在spring3以后,spring自己的task包,能实现轻量级的定时任务. 项目决定不用quartz,只用spring自带的包,完成这个任务. 我搜索了资料,发现很少有这方面的资料.求叫大神们,只用spring怎么实现以上要求. 解决方案 实现了没有啊,我很想知道的啊?

spring task 修改系统时间 执行问题

问题描述 spring task 修改系统时间 执行问题 场景是这样的: 写了个定时任务每天凌晨一点执行. 一种情况是修改系统时间距离到凌晨一点差几分钟,跑项目.到点了定时任务执行. 第二种情况是先跑项目在改系统时间,这种情况定时任务不执行. 简单的了解下加个人的理解是:在项目跑起来的时候spring去记录当前系统的时间, 起一个线程,计算当前时间到下一次执行的时间,现在这这段时间处于等待.到了时间 唤醒线程执行job. 请教大神们,个人理解是否有误? 解决方案 android修改系统时间问题W

spring mvc 定时器问题,高手请进。

问题描述 spring mvc 定时器问题,高手请进. 问题是这样的,我写了个定时器,现在需求是这样的,我前台写了个jsp页面,页面生成动态的时间和一个随机数,我如何做到不访问前台jsp页面,调用定时器,定时访问后台的控制层,控制层返回这个前台jsp页面,前台在动态提交给后台,存入数据库,前台jsp页面和后台业务层和dao层已经写好,不要考虑,大神给我个思路,或者其他办法也行,目的就是定时器定时调度控制层返回前台页面. 解决方案 你前台jsp页面可以使用setInterval()函数,定时调用a

spring中定时器的使用

在很多实际的web应用中,都有需要定时实现的服务,如每天12点推送个新闻,每隔一个小时提醒用户休息一下眼睛,隔一段时间检测用户是否离线等等. spring框架提供了对定时器的支持,通过配置文件就可以很好的实现定时器,只需要应用启动,就自动启动定时器.下面介绍一下具体做法. 第一种,使用XML配置的方法 前期工作,配置spring的开发环境(这里用到了spring的web应用包,需要导入) 首先创建定时器的任务类,定时器要做什么工作,就在这里写什么方法. package org.time; imp

spring配置定时器执行service方法,查询实体时多对一报 could not initialize proxy

问题描述 如题,我配置了openSessionInViewFilter 而且在actioon查询lazy=false是起作用的,为什么定时器里不可以. 问题补充:蔡华江 写道 解决方案 没什么解法,最简单就是对Hibernate的实体bean进行游离化.解决方案二:openSessionInViewFilter 是在请求时过滤器中关闭的Sesion,而Stpring得定时器并没有经过过滤器openSessionInViewFilter的,所以这时候过滤器是并不起作用得,如果要解决问题,你可以用H

Spring MVC学习笔记之Hello World

1.建立WEB项目Spring MVC 2.引入jar包:             commons-logging-1.1.1             spring-aop-4.2.5.RELEASE.jar             spring-beans-4.0.0.RELEASE.jar             spring-context-4.0.0.RELEASE.jar             spring-core-4.0.0.RELEASE.jar             spr