`
newleague
  • 浏览: 1504491 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

Spring中任务调度(TimerTask篇)

阅读更多

在Spring中实现按时任务调度除了用Quartz之外,还可以使用TimerTask。但是TimerTask适用于时间间隔相对较短的任务,如果任务时间间隔很长,比如一天执行一次,还是用Quartz要好。

1.xml文件

<? xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >

< beans >
    
<!--  定时执行任务的类,要继承TimerTask  -->
    
< bean  id ="UserTimerTask"  class ="task.UserTimerTask" />
    
    
<!--  用Spring管理这个TimerTask,设定触发间隔  -->
    
< bean  id ="ScheduledUserTimerTask"  class ="org.springframework.scheduling.timer.ScheduledTimerTask" >
      
< property  name ="delay" >
        
< value > 3000 </ value >
      
</ property >
      
< property  name ="period" >
        
< value > 3000 </ value >
      
</ property >
      
< property  name ="timerTask" >
        
< ref  local ="UserTimerTask" />
      
</ property >
    
</ bean >
    
    
<!--  启动TimerTask,TimerFactoryBean会在上下文初始化的时候自动启动task,在销毁时,自动结束task  -->
    
< bean  id ="timerFactory"  class ="org.springframework.scheduling.timer.TimerFactoryBean" >
     
< property  name ="scheduledTimerTasks" >
      
< list >
        
< ref  local ="ScheduledUserTimerTask" />
      
</ list >
     
</ property >
   
</ bean >
</ beans >


2.Task类

package  task;

import
 java.util.TimerTask;

public   class  UserTimerTask  extends  TimerTask 
{

    @Override
    
public   void  run()  ...
{
        
//  TODO Auto-generated method stub

        System.out.println( " Task started! " );
    }


}

...


3.测试类

package  test;

import
 org.springframework.context.ApplicationContext;
import
 org.springframework.context.support.ClassPathXmlApplicationContext;

public   class  TimerTaskTest 
{

    
public   static   void  main(String[] args)  ...
{
        
//  TODO Auto-generated method stub

         System.out.println( " Test start! " );
         ApplicationContext ctx 
=   new  ClassPathXmlApplicationContext( " xml/TimerTask.xml "
);
         
         
// 保持运行,才能看到效果

          while  ( true );
    
    }


}
分享到:
评论

相关推荐

    Spring 中任务调度 TimeTask 与quartz简单用法

    本篇文章将详细探讨Spring中的两种常见任务调度工具:`TimerTask`和`Quartz`,以及如何配置`cronExpression`来精确控制任务的执行时间。 首先,我们来了解`TimerTask`。`TimerTask`是Java内置的定时任务类,它继承...

    spring定时器(内含TimerTask实现和Quartz实现两种方式)

    在Spring中,我们可以创建一个实现了`TimerTask`的类,并通过Spring的`ThreadPoolTaskScheduler`来调度这些任务。以下是一个简单的示例: ```java import java.util.TimerTask; @Service public class MyTimerTask...

    Spring定时器TimerTask用法

    本文将详细介绍如何在Spring中使用`TimerTask`类以及Spring的定时任务解决方案。 首先,让我们了解一下Spring的定时任务框架`org.springframework.scheduling`。这个模块提供了多种定时任务的支持,如基于Java的`@...

    spring + jdk TimerTask定时器

    本文将深入探讨如何在Spring框架中结合JDK的`TimerTask`来创建和管理定时任务。 ### Spring定时任务简介 Spring提供了`org.springframework.scheduling`包,其中包含用于调度任务的组件。最常用的有两种方式:基于...

    Spring整合TimerTask实现定时任务调度

    需要注意的是,虽然`TimerTask`和Spring的`ScheduledTimerTask`可以实现定时任务调度,但在实际项目中,Spring的`@Scheduled`注解或Quartz等第三方库通常更为推荐,因为它们提供了更强大的定时任务管理能力,包括更...

    Spring 任务调度

    【Spring 任务调度】是Spring框架中用于自动化执行任务的功能,它允许开发者安排任务在特定时间或间隔执行,无需用户交互。任务调度在许多场景下都非常有用,比如定期备份数据库、执行系统统计、检查新邮件等。 1. ...

    java定时任务调度

    在Java中,有多种实现定时任务调度的方式,包括但不限于Java内置的`java.util.Timer`类、Spring框架的`@Scheduled`注解以及Quartz库。 1. **Java内置的`java.util.Timer`和`TimerTask`**: - `Timer`类用于创建一...

    Spring3.0作业调度

    【Spring 3.0作业调度】是Spring框架中的一个重要组件,它允许开发者在特定时间点或按照预定的周期执行任务,极大地增强了应用的自动化能力。本文将深入探讨Spring 3.0中的作业调度机制,包括其重要性、基本概念、...

    Sring最佳实践-集成任务调度服务

    要在Spring中使用Timer,你需要创建一个TimerTask实现类,然后在Spring配置文件中声明并配置该任务。例如: ```xml &lt;bean id="timer" class="org.springframework.scheduling.timer.TimerFactoryBean"&gt; ...

    TimerTask定时执行任务

    在本话题中,我们将深入学习如何在Spring2框架下利用`TimerTask`实现定时任务,以及在MyEclipse开发环境中,如何与Tomcat服务器配合使用。 【描述】:基于MyEclipse的集成开发环境,我们可以构建Java Web项目,并...

    spring2 计划任务

    标签中的“源码”意味着这篇博文可能深入解析了Spring任务调度的相关源代码,帮助读者理解其内部工作机制。了解源码有助于优化任务调度的性能,解决潜在的问题,以及进行定制化的扩展。 而“工具”标签可能是指...

    JAVA定时任务调度

    在Java中,我们可以使用多种方式来实现定时任务,如Java内置的`java.util.Timer`类、`java.util.concurrent.ScheduledExecutorService`,以及更强大的第三方库如Quartz Scheduler和Spring框架中的`@Scheduled`注解等...

    Spring 框架自带定时任务和Quartz定时任务

    在这两种方式中,Spring框架提供了自己的定时任务工具Spring Task,以及与专业定时任务框架Quartz集成的能力。 首先,对于Java自带的定时任务实现,我们可以使用java.util.Timer和java.util.TimerTask类。Timer类...

    spring2.0学习笔记+spring定时任务

    1. **基于Timer的定时任务**:Spring 2.0早期版本中,可以使用`TimerTask`结合`Timer`来实现简单的定时任务。`TimerTask`是Java标准库中的类,用于定义需要定时执行的任务,而`Timer`则负责调度这些任务。然而,这种...

    小码农的代码(四)----------JAVA中Timer定时器与Spring定时任务

    在Java编程语言中,`Timer`类和Spring框架的定时任务是两种常见的实现定时执行任务的方式。本篇文章将深入探讨这两个主题,旨在帮助初学者理解它们的工作原理以及如何在实际项目中应用。 首先,让我们来看一下Java...

    基于Java的实例源码-任务调度 jconch.zip

    Java中任务调度的基础是`java.util.Timer`和`java.util.TimerTask`类,它们可以用来创建简单的定时任务。然而,对于更复杂的需求,如并发控制、任务依赖和可扩展性,我们通常会使用更强大的库,如Quartz或者Spring...

    关于 spring 里的定时任务设置

    在Spring框架中,定时任务的实现提供了多种方式,如基于Java Timer API的定时任务和基于Quartz库的定时任务。这两种方法各有优缺点,适用于不同的场景。以下将详细讲解这两种方式。 1. 基于Java Timer API的定时...

    Spring定时任务的几种实现

    - **配置定时任务**:在Spring配置文件中启用定时任务功能,通常只需要开启定时任务的支持即可。 ```xml ``` 通过上述步骤,我们便完成了基于Spring框架的定时任务实现。总的来说,Quartz和Spring Task各有...

    Spring提供的三种定时任务机制及其比较

    在这篇文章中,我们将重点讨论基于Quartz的定时机制,因为它提供了更高级和灵活的定时任务管理。 1. **基于Quartz的定时机制** Spring通过`SchedulerFactoryBean`作为入口来集成Quartz,这是一个关键的配置类。当...

    在Spring中使用Timer --实现由时间触发的事件任务.doc

    在Spring中使用`Timer`,有两种主要的方法来创建和调度这些时间触发的事件任务: 1. **继承TimerTask创建任务** 这种方法与传统的Java `Timer`用法相似。你需要创建一个类,继承自`java.util.TimerTask`,并重写`...

Global site tag (gtag.js) - Google Analytics