定时器:继承java.util.TimerTask类实现run方法

package com.zbb.framework.util.timer;

import java.util.TimerTask;

import com.zbb.business.user.service.IUsOrderService;
/**
*
* @author Vortex
* 继承java.util.TimerTask类实现run方法
* 该类实现spring定时器功能,spring配置文件spring-util.xml
* 该定时器功能实现限制用户在规定时间内支付订单,否则取消支付权限
*/
public class TimerTaskExample extends TimerTask{
private static boolean isrunning = true; private IUsOrderService usOrderService;
@Override
public void run() {
if(!isrunning){
isrunning = true;
/*
* 业务实现区
*/
try {
usOrderService.updateByIds();
} catch (Exception e) {
e.printStackTrace();
}
isrunning = false;
}else{
System.out.println("定时器启动。。。");
isrunning = false;
}
}
public IUsOrderService getUsOrderService() {
return usOrderService;
}
public void setUsOrderService(IUsOrderService usOrderService) {
this.usOrderService = usOrderService;
} }

  spring配置文件:spring-util.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- 配置需要运行的类 -->
<bean id="reportTimerTask" class="com.zbb.framework.util.timer.TimerTaskExample">
<property name="usOrderService" ref="usOrderService" />
</bean>
<!-- 配置Spring定时器 -->
<!-- timerTask属性告诉ScheduledTimerTask运行哪个bean, period属性每间隔(30秒)运行一次, delay属性延迟启动(10000毫秒)Spring定时器 -->
<bean id="scheduleReportTask" class="org.springframework.scheduling.timer.ScheduledTimerTask">
<property name="timerTask" ref="reportTimerTask"></property>
<property name="period"><value>30000</value></property>
<property name="delay"><value>0</value></property>
</bean>
<!-- 启动Spring定时器 -->
<bean id="scheduleReportFactory" class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="scheduledTimerTasks">
<list><ref bean="scheduleReportTask" /></list>
</property>
</bean>
</beans>

Spring Timer实现的更多相关文章

  1. Spring Timer 两种实现

    有两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz.1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 impo ...

  2. spring cron 定时任务

    文章首发于个人博客:https://yeyouluo.github.io 0 预备知识:cron表达式 见 <5 参考>一节. 1 环境 eclipse mars2 + Maven3.3. ...

  3. Spring任务调度之Timer

    一.分类 由于现在大部分的系统都是采用了spring,所以所有的例子都结合spring来构建,目前主要的任务调度分为三种: Java自带的java.util.Timer类,这个类允许你调度一个java ...

  4. 两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz

    1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 import java.util.TimerTask; public class EmailReportT ...

  5. Spring + JDK Timer Scheduler Example--reference

    http://www.mkyong.com/spring/spring-jdk-timer-scheduler-example/ In this example, you will use Sprin ...

  6. Java之旅--定时任务(Timer、Quartz、Spring、LinuxCron)

    在Java中,实现定时任务有多种方式,本文介绍4种,Timer和TimerTask.Spring.QuartZ.Linux Cron. 以上4种实现定时任务的方式,Timer是最简单的,不需要任何框架 ...

  7. 任务调度的方式:Timer、ScheduledExecutorService、spring task、quartz、XXL-JOB、Elastic-Job

    任务调度 定时任务调度:基于给定的时间点.给定的时间间隔.给定的执行次数自动执行的任务. Timer 介绍 Timer,简单无门槛,一般也没人用. Timer位于java.util包下,其内部包含且仅 ...

  8. java定时任务实现的几种方式(Timer、Spring Task、Quartz)

    Timer JDK自带的Timer类,允许调度一个TimerTask任务. Demo: /** * Timer测试类 */ public class TimerDemo { public static ...

  9. IntelliJIdea 2016.2 使用 tomcat 8.5 调试spring的web项目时,bean被实例化两次导致timer和thread被启动了两遍的问题的解决

    今天新搭建了一个spring的web项目,项目启动时会启动一个线程,线程里定时执行任务,另外还启动了一个定时器,每秒钟统计系统吞吐量等业务性能数据.但是调试的时候惊奇的发现定时器和线程均被启动了两次. ...

随机推荐

  1. c语言对齐问题

    引言 考虑下面的结构体定义: typedef struct{ char c1; short s; char c2; int i; }T_FOO; 假设这个结构体的成员在内存中是紧凑排列的,且c1的起始 ...

  2. MFC 刷新失效的Picture控件

    问题描述:如在摄像头显示时,关闭摄像头,此时Picture控件仍然显示最后一帧图像,需要刷新掉,还原Picture控件.或者重复显示两张不同大小的图片时,第二张背景有第一张图片残留. 解决方法1:(最 ...

  3. intellig idea 快捷键

    可以在设置中更改为 eclipse 风格的快捷键. 默认 按住 ctlr + 左键,会调整到对应的声明处, 如果有实现类,eclipse中给予了选择. 在idea 中如果想直接调整到实现类,那么采用快 ...

  4. 关于PHP的一小段代码求解如下求解"%2\$s"

    <?php$format = "The %2\$s contains %1\$d monkeys";printf($format, 8, "北京");?& ...

  5. javaScript 比较数字大小

    当你需要通过js来比较数字大小的时候千万不要这样 a>b,这样有可能会把a,b当作字符串来比较,最好用函数来转换下 例如: function sorterFunc(a,b){ var aNum= ...

  6. 五、oracle基本建表语句

    --创建用户create user han identified by han default tablespaceusers Temporary TABLESPACE Temp;grant conn ...

  7. WebApi Help Pages

    如何新建Help Pages在此不多复述,网上很多: https://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/ ...

  8. Oracle中sys和system用户的区别

    1.数据库的启动需要以SYSDBA/SYSOPER身份登录. 2.如果在同一主机上使用IPC连接到数据库使用操作系统授权,登录任何一个用户都可以拥有as sysdba和as sysoper. 3.sy ...

  9. 关于ajax后台success传来json数据的问题

    最近在使用JQuery的ajax方法时,需要返回的数据为json数据,在success返回中数据处理会根据返回方式不同会采用不同的方式来生成json数据.在$.ajax方法中应该是如何来处理的,简单进 ...

  10. python之~ 序列化与反序列化

    sy1.proto文件 syntax = "proto2"; message stuff { required int32 stuff_ID = ; required ; opti ...