`
stenlylee
  • 浏览: 260584 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

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

阅读更多
public class TaskManager implements ServletContextListener {

 /**

  * 每天的毫秒数

  */

 public static final long PERIOD_DAY = DateUtils.MILLIS_IN_DAY;

 /**

  * 一周内的毫秒数

  */

 public static final long PERIOD_WEEK = PERIOD_DAY * 7;

 /**

  * 无延迟

  */

 public static final long NO_DELAY = 0;

 /**

  * 定时器

  */

 private Timer timer;

 /**

  * 在Web应用启动时初始化任务

  */

 public void contextInitialized(ServletContextEvent event) {

        //定义定时器

  timer = new Timer("数据库表备份",true); 

  //启动备份任务,每月(4个星期)执行一次

  timer.schedule(new BackUpTableTask(),NO_DELAY, PERIOD_WEEK * 4);

//  timer.schedule(new BackUpTableTask(),NO_DELAY, 30000);

 }

 /**

  * 在Web应用结束时停止任务

  */

 public void contextDestroyed(ServletContextEvent event) {

  timer.cancel(); // 定时器销毁

 }

}

public class BackUpTableTask extends TimerTask { 

 private static Log log = LogFactory.getLog(BackUpTableTask.class); 

 private static boolean isRunning = false; 

 public void run() { 

  if (!isRunning) { 

   isRunning = true; 

   log.debug("开始执行任务..."); //开始任务 

   //working  add what you want to do 

   log.debug("执行任务完成..."); //任务完成 

   isRunning = false; 

  } else { 

   log.debug("上一次任务执行还未结束..."); //上一次任务执行还未结束 

  } 

 } 

}

 

<listener>

  <listener-class>***.TaskManager</listener-class>

  <description>要定期执行的任务</description>
</listener>
分享到:
评论

相关推荐

    java轻松实现—定时任务

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

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

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

    java定时任务的实现方式

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

    java web定时任务 实例

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

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

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

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

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

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

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

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

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

    Quartz 定时任务web使用

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

    Spring定时任务(Web项目)

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

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

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

    java定时任务

    - `java.util.TimerTask`:继承自Runnable接口,是定时任务的具体实现类,需要覆盖`run()`方法来定义要执行的任务。 2. **ScheduledExecutorService** - `java.concurrent.ScheduledExecutorService`是Java并发包...

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

    总结来说,这个"Spring3.0定时任务简单实例web工程"提供了一个使用Spring 3.0实现定时任务的实例,通过配置`TaskScheduler`,定义任务类,使用`@Scheduled`注解设置执行计划,最后在Web应用启动时启动任务,可以方便...

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

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

    Timer定时任务

    总的来说,`Timer`和`TimerTask`是Java中实现定时任务的基本工具,它们简单易用,但在多线程环境下需要注意其线程安全性。通过深入理解这些知识点,开发者可以灵活地在项目中实现各种定时需求。不过,对于复杂的定时...

    Tomcat的定时任务(计时器)

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

    Java工具:定时任务工具Elastic-job的简单使用

    Java工具:Elastic-job是一个强大的分布式任务调度框架,它提供了简单易用的API,使得开发者可以轻松地在Java环境中实现定时任务。Elastic-job由两个核心模块组成:Elastic-job-Lite和Elastic-job-Cloud,前者适用于...

    详解SpringBoot 创建定时任务(配合数据库动态执行)

    SpringBoot是一个开源的Java基础框架,...结合Mybatis和MySQL,可以在不重启应用的情况下调整定时任务的执行周期,以适应业务的变化需求。这种机制为复杂的后台任务调度提供了极大的便利,使得任务管理更加高效和可靠。

    web定时器组件

    1. ServletContextListener:创建一个实现了ServletContextListener接口的类,重写contextInitialized方法,在Web应用启动时初始化定时任务。 2. Filter:利用Filter,可以在每次请求前或后执行定时任务,但这可能会...

Global site tag (gtag.js) - Google Analytics