`
tiwson
  • 浏览: 333004 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

java在web任务应用:定时执行任务

阅读更多
转自:http://dev.yesky.com/355/3407855.shtml

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

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

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

以下是引用片段:   
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(); // 定时器销毁    
}    
}   



java 代码
以下是引用片段:   
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("上一次任务执行还未结束..."); //上一次任务执行还未结束     
                    }     
       }     
}   


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

xml 代码


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




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

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

分享到:
评论

相关推荐

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

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

    java轻松实现—定时任务

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

    java web使用监听器实现定时周期性执行任务demo

    综上所述,这个"java web使用监听器实现定时周期性执行任务demo"提供了一个基础框架,通过Servlet监听器在Web应用启动时启动定时任务,周期性执行用户自定义的操作。开发者可以根据实际需求,在`Runnable`的`run`...

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

    1. **配置Spring Task**:在Spring的配置文件(如`applicationContext.xml`或使用Java配置类)中,我们需要启用任务调度功能并配置相应的执行器或调度器。例如,使用Java配置可以这样写: ```java @Configuration @...

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

    Java定时执行任务是Java开发中常见的一种需求,用于在特定时间执行特定的代码逻辑,例如数据备份、统计分析等。本文将详细介绍Java中三种常见的定时任务实现方式:`java.util.Timer`、`ServletContextListener`以及...

    java web定时任务 实例

    在本实例中,我们将探讨如何在Java Web环境中设置和执行定时任务,以及涉及到的相关技术和工具。 首先,Java Web定时任务通常通过Java的定时框架如Quartz或Spring的TaskScheduler来实现。Quartz是一个开源的作业...

    JAVA项目服务器启动时自启动指定的Servlet,并定时执行任务

    二、定时执行任务 在Servlet中实现定时任务,我们可以使用Java的定时框架如`java.util.Timer`或`ScheduledExecutorService`(推荐)。以下是一个使用`ScheduledExecutorService`的例子: ```java import java.util....

    定时执行任务例子 绝对好用

    // 在这里编写需要定时执行的代码 } } public class TimerManager { Timer timer = new Timer(); public void scheduleTask(MyTimerTask task, long delay, long period) { timer.schedule(task, delay, ...

    java定时任务的实现方式

    `Timer`类提供了定时任务调度的功能,可以按照预设的时间间隔执行任务。在提供的代码示例中,创建了一个`SavaLog`类,其中的`savaLog`方法用于执行实际的业务逻辑。`TimerTask`是与`Timer`配合使用的任务类,需要...

    Quartz 定时任务web使用

    通过上述内容,我们可以构建一个基于Quartz的Web应用定时任务系统,实现任务的自动执行。对于"Quartz_demo"这个压缩包文件,可能包含了示例代码、配置文件和说明文档,可以进一步帮助学习和实践Quartz在Web环境中的...

    JAVA定时执行

    在Java编程中,定时执行任务是一项常见的需求,例如在服务器上定期执行数据备份、日志清理或自动同步等操作。本篇文章将详细讲解如何在Java环境中实现定时执行,并结合提供的文件`ReloadResourceListener.java`, `...

    java定时器定时调用任务

    在Servlet容器(如Tomcat)中,可以通过监听器(Listener)或者Servlet的初始化方法来创建和启动定时器,以实现在Web应用启动后自动开始执行定时任务。 此外,Java 5引入了`java.util.concurrent`包,其中的`...

    java定时任务

    需要注意的是,在 TimerManager 类中,需要判断第一次执行定时任务的时间是否小于当前时间,如果小于当前时间,那么需要将第一次执行定时任务的时间加一天,以便在下一个时间点执行任务。如果不加一天,任务将立即...

    在Java Web项目中添加定时任务的方法

    在 Java Web 程序中加入定时任务是非常重要的,通常我们需要在特定的时间点执行某些任务,以实现自动化操作。这里介绍两种方法来实现定时任务:使用监听器注入和使用 Spring 注解 @Scheduled 注入。 一、使用监听器...

    Spring定时任务(Web项目)

    Spring的定时任务功能使得在Web项目中实现周期性任务变得轻松,无论是简单的定时执行还是复杂的调度需求,都有相应的解决方案。结合`@Scheduled`注解和`TaskScheduler`接口,开发者可以灵活地控制任务的执行时机和...

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

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

    Java里timer执行定时任务

    对于更复杂的定时需求,如需要在确切的日期时间点执行任务,可以使用 `schedule()` 的其他重载版本。这些版本允许指定具体的执行时间,而不是仅基于相对延迟。 方法签名如下: ```java public void schedule...

    java scheduler 定时demo

    2. **Spring Scheduler**: 在Java Web应用中,Spring框架提供了`org.springframework.scheduling`模块,简化了定时任务的配置和管理。通过`@Scheduled`注解,可以直接在方法上声明一个定时任务,或者通过`Task...

Global site tag (gtag.js) - Google Analytics