Spring Timer实现

定时器:继承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>

时间: 2024-10-10 20:22:32

Spring Timer实现的相关文章

Spring Timer 两种实现

有两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz.1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 import java.util.TimerTask; public class EmailReportTask extends TimerTask{ @Override public void run() { ... } } 在Spring定义 ... 配置Spring定时器 <bean id="s

那些年,我们追过的“定时调度”

定时调度作为后端开发人员,我们总会遇到这样的业务场景:每周同步一批数据:每半个小时检查一遍服务器运行状况:每天早上八点给用户发送一份包含今日待办事项的邮件,等等. 这些场景中都离不开"定时器",就像一个定好时间规则的闹钟,它会在指定时间触发,执行我们想要定义的调度任务.那么我们今天就来数一下,那些年我们用过的"定时调度". 1.job (oracle)从刚工作就一直使用oracle数据库,最早接触的定时任务就是oracle数据库的job.job有定时执行的功能,可以

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

在Java中,实现定时任务有多种方式.本文介绍4种.Timer和TimerTask.Spring.QuartZ.Linux Cron. 以上4种实现定时任务的方式.Timer是最简单的.不须要不论什么框架,只JDK就能够.缺点是不过个时间间隔的定时器,调度简单.Spring和QuartZ都支持cron,功能都非常强大,Spring的长处是略微简单一点,QuartZ的长处是没有Spring也可使用:Linux Cron是个操作系统级别的定时任务.适用于全部操作系统支持的语言,缺点是精度只能到达分钟

Spring定时器配置的两种实现方式OpenSymphony Quartz和java Timer详解

原创整理不易,转载请注明出处:Spring定时器配置的两种实现方式OpenSymphony Quartz和java Timer详解 代码下载地址:http://www.zuidaima.com/share/1772648445103104.htm 有两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz. 1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 import java.util.TimerTask; p

Spring任务调度之Timer

一.分类 由于现在大部分的系统都是采用了spring,所以所有的例子都结合spring来构建,目前主要的任务调度分为三种: Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务.使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行. 使用Quartz,这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显复杂. Spring3.0以后自带的task,可以将它看成一个轻量级的Qua

Spring + JDK Timer Scheduler Example--reference

http://www.mkyong.com/spring/spring-jdk-timer-scheduler-example/ In this example, you will use Spring’s Scheduler API to schedule a task. 1. Scheduler Task Create a scheduler task… package com.mkyong.common;   public class RunMeTask { public void pri

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

1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 import java.util.TimerTask; public class EmailReportTask extends TimerTask{ @Override public void run() { ... } } 在Spring定义 ... 配置Spring定时器 <bean id="scheduleReportTask" class="org.springfra

Spring 中使用 JDK Timer

在 Java 1.3 以后的版本中,通过 java.util.Timer 和 java.util.TimerTask 这两个类提供了简单的任务调度功能,称之为 Java Timer.Java Timer 允许按照固定频率重复执行某项任务,这比直接通过编写底层线程程序进行任务调度要轻松许多,但是对于诸如“在每周周一8:00执行”这种和日历相关的任务调度需求来说,Java Timer 就无能为力了. 此外,JDK Timer 只适合对执行时间非常短的任务进行调度,因为在 Timer 中所有的 Tim

Spring定时任务的实现

项目开发中经常需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将结合spring框架来介绍.一.分类从实现的技术上来进行分类,目前主要有三种技术(或者说有三种产品):Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务.使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行.一般用的较少,这篇文章将不做详细介绍.使用Quar