`

java 定时 Java:Web应用下实现定时任务的简便方法(转)

阅读更多

http://dev.yesky.com/355/3407855.shtml

在WEB应用下实现定时任务的简便方法

  在web方式下,如果我们要实现定期执行某些任务的话,除了用quartz等第三方开源工具外,我们可以使用Timer和TimeTask来完成指定的定时任务:

  第一步:创建一个任务管理类,实现ServletContextListener 接口

  1. 以下是引用片段:   
  2. public class TaskManager implements ServletContextListener {   
  3.  /**  
  4.   * 每天的毫秒数  
  5.   */  
  6.  public static final long PERIOD_DAY = DateUtils.MILLIS_IN_DAY;   
  7.  /**  
  8.   * 一周内的毫秒数  
  9.   */  
  10.  public static final long PERIOD_WEEK = PERIOD_DAY * 7;   
  11.  /**  
  12.   * 无延迟  
  13.   */  
  14.  public static final long NO_DELAY = 0;   
  15.  /**  
  16.   * 定时器  
  17.   */  
  18.  private Timer timer;   
  19.  /**  
  20.   * 在Web应用启动时初始化任务  
  21.   */  
  22.  public void contextInitialized(ServletContextEvent event) {   
  23.         //定义定时器   
  24.   timer = new Timer("数据库表备份",true);    
  25.   //启动备份任务,每月(4个星期)执行一次   
  26.   timer.schedule(new BackUpTableTask(),NO_DELAY, PERIOD_WEEK * 4);   
  27. //  timer.schedule(new BackUpTableTask(),NO_DELAY, 30000);   
  28.  }   
  29.  /**  
  30.   * 在Web应用结束时停止任务  
  31.   */  
  32.  public void contextDestroyed(ServletContextEvent event) {   
  33.   timer.cancel(); // 定时器销毁   
  34.  }   
  35. }  

 

 

java 代码
  1. 以下是引用片段:   
  2. public class BackUpTableTask extends TimerTask {    
  3.         private static Log log = LogFactory.getLog(BackUpTableTask.class);    
  4.         private static boolean isRunning = false;    
  5.        public void run() {    
  6.                   if (!isRunning) {    
  7.                               isRunning = true;    
  8.                                log.debug("开始执行任务..."); //开始任务    
  9.                                   //working  add what you want to do    
  10.                               log.debug("执行任务完成..."); //任务完成    
  11.                               isRunning = false;    
  12.                     } else {    
  13.                              log.debug("上一次任务执行还未结束..."); //上一次任务执行还未结束    
  14.                     }    
  15.        }    
  16. }  

 

  第三步:在web中添加一个监听器

xml 代码

 

  1. 以下是引用片段:   
  2.  <listener>  
  3.   <listener-class>***.TaskManager</listener-class>  
  4.   <description>要定期执行的任务</description>  
  5.  </listener>  


 

  那么在web服务器启动的时候,任务也被启动,并且会周期性的执行

第二步:创建一个时间任务类

java 代码
分享到:
评论
2 楼 weituotian 2016-05-18  
timer是哪个包里面的?》
1 楼 cw_oldbig 2014-01-24  
受用了,谢谢!

相关推荐

    java轻松实现—定时任务

    总结来说,Java实现定时任务有多种方法,其中在Web应用中使用监听器和`TimerTask`是一种常见的方式。这种方式易于理解和实现,但可能不适合复杂的定时需求。对于更复杂的需求,可以考虑使用`...

    java定时任务的实现方式

    本文将详细介绍两种常用的Java定时任务实现方式:Timer类和Spring框架的Quartz调度器。 首先,第一种方式是使用Java内置的`Timer`类。`Timer`类提供了定时任务调度的功能,可以按照预设的时间间隔执行任务。在提供...

    Spring定时任务实现(非Web项目)

    综上所述,Spring提供的定时任务功能使得开发者能够轻松地在非Web项目中实现复杂的时间驱动逻辑,无论是简单的定时执行还是基于Cron表达式的复杂调度,Spring都能提供强大的支持。通过合理配置和编程,我们可以创建...

    java定时任务,每天定时执行任务

    ### Java定时任务实现:每天定时执行任务 #### 一、概述 在Java开发中,定时任务是非常常见的一种需求。例如,需要定期清理数据库中的过期数据、定时发送邮件通知等场景。本文将详细介绍如何利用Java内置的`Timer`...

    java web定时任务 实例

    Java Web定时任务是Web应用程序中实现周期性操作的关键技术,例如数据备份、清理过期记录、发送邮件通知等。在本实例中,我们将探讨如何在Java Web环境中设置和执行定时任务,以及涉及到的相关技术和工具。 首先,...

    Java定时执行任务的三种方法

    在Web应用环境中,`ServletContextListener`是一个非常实用的定时任务实现方式。它是一个接口,实现了该接口的类可以在Web服务器启动和关闭时自动调用相应的方法。在`contextInitialized`方法中初始化定时任务,而...

    java定时任务

    Java定时任务是Java开发中一个重要的功能模块,它允许程序按照预定的时间间隔或者特定时间点执行特定的任务。在企业级应用开发中,定时任务被广泛用于数据同步、报表生成、邮件发送、缓存清理等场景。Java提供了多种...

    Quartz 定时任务web使用

    Quartz 是一个开源的作业调度框架,常用于Java应用程序中实现定时任务的管理。它提供了丰富的API和功能,使得开发者可以灵活地定义和控制任务的执行。本篇将重点介绍如何在Web环境中集成并使用Quartz,以及相关的...

    Spring定时任务(Web项目)

    它提供了基于`@Scheduled`注解和`TaskScheduler`接口的两种定时任务实现方式。`@Scheduled`适用于简单的定时任务,而`TaskScheduler`则更灵活,可以用于复杂的调度需求。 二、@Scheduled注解使用 1. 配置启用定时...

    在Java Web应用中如何实现任务有效调度

    本文将探讨如何使用Quartz库结合Struts Action框架在Java Web应用中实现任务调度。 首先,我们需要理解为什么任务调度是必要的。在传统的Web应用中,多数操作都是即时响应的,以避免用户长时间等待。但在某些情况下...

    Spring3.0定时任务简单实例web工程

    在本文中,我们将深入探讨如何在Spring 3.0框架中实现一个简单的定时任务Web工程。Spring是一个极其灵活且功能强大的Java应用框架,它不仅支持服务层、数据访问层的开发,还提供了对定时任务的强大支持。对于Web应用...

    Java Web实现添加定时任务的方法示例

    在示例中,`DailyDataTaskListener`实现了`ServletContextListener`接口,`contextInitialized`方法会在Web应用启动时被调用,从而触发`TimerManager`的初始化,进而启动定时任务。 ```java public class ...

    java定时触发任务

    Java定时任务是Java编程中非常常见的一种功能,用于在特定的时间点或按照一定的频率执行某项操作。在Java Web环境中,通常使用两种主要方法来实现定时任务:通过Servlet或者通过ServletContextListener。 首先,...

    java定时任务的实现方法

    Java定时任务实现方法 Java语言中有多种方式来实现定时任务,包括使用Timer、TimerTask、 ScheduledExecutorService等。下面是对Java定时任务实现方法的一些总结和解释。 使用Timer实现定时任务 在Java中,使用...

    Tomcat的定时任务(计时器)

    在Java Web开发中,Tomcat是一个非常流行的开源应用服务器,它用于部署和运行Servlet和JSP应用程序。有时候,我们可能需要在特定的时间执行一些后台任务,例如数据清理、日志归档或者发送邮件等,这时候就需要用到...

    java写的WEB应用上的时间触发器

    3. **`java.util.Timer`和`TimerTask`**:这是Java标准库提供的简单定时任务实现。创建一个`TimerTask`实例,定义任务逻辑,然后通过`Timer`类的`schedule`方法设定执行时间。但这个类不适用于复杂或并发任务,因为...

    Java实现Web应用中的定时任务(实例讲解)

    Java实现Web应用中的定时任务 Java实现Web应用中的定时任务是一个非常重要的功能,在当前WEB应用中,多数应用都具备任务调度功能。该功能可以指定一个未来的时间范围执行一定任务,例如驱动处理工作流程、系统维护...

    Spring2.5+Quartz定时任务简单例子web工程

    在"Spring2.5+Quartz定时任务简单例子web工程"中,我们可以看到这两个框架的结合使用,主要目标是实现基于 Web 应用的定时任务管理。以下将详细介绍这个项目中可能涉及的知识点: 1. **Spring 2.5**: - **依赖...

    Java语言定时调度任务之实现.pdf

    定时调度任务在现代Web应用中是不可或缺的功能,尤其在需要周期性执行任务的各种业务系统中显得尤为重要。 Java语言中实现定时调度任务通常有三种主流方法:Timer调度、线程池调度和Quartz调度。每种方法各有其特点...

Global site tag (gtag.js) - Google Analytics