java中定时任务的实现

原创 2013年12月03日 23:07:03

我们在开发过程经常需要每隔一段时间重复执行一下相同的任务,比如说每天的数据的备份等,这个我们称之为定时任务,我们可以通过java中自身提供的接口实现,通过监听器(Listener)和定时器(Timer)定时执行某个任务:

web.xml配置:
<listener>
<listener-class>wyf.hxl.TaskListener</listener-class>
</listener>

TaskListener类这样写:

mport java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class TaskListener implements ServletContextListener {

 private Timer timer = null;
 public void contextDestroyed(ServletContextEvent sce) {

  System.out.println("11");
  timer.cancel();
 }

 public void contextInitialized(ServletContextEvent sce) {
  
  timer = new Timer();
  timer.schedule(new task(), 0, 3000);
 }
}

task类这样写:

import java.util.TimerTask;

public class task extends TimerTask {

 public void run() {

  System.out.println(“重复执行”);
  }
}

 

这样就可以实现定时任务的执行,ServletContextListener能够监听ServletContext 对象的生命周期,实际上也就是监听整个web应用的生命周期,当Servlet 容器启动Web 应用时调用contextInitialized(ServletContextEvent sce) 方法,在调用完该方法之后,容器再对Filter 初始化。当Servlet 容器终止Web 应用时调用contextDestroyed(ServletContextEvent sce)方法,在调用该方法之前,容器会先销毁所有的Servlet 和Filter 过滤器。

 

另外,Timer.schedule(TimerTask task, long delay)是延迟delay时间再执行task任务,并且只执行一次。

schedule(TimerTask task, long delay, long period)才是重复的执行。

 

 


 

 

相关文章推荐

Java定时多线程任务实现(TimerTask)

java中实现多线程,可通过继承Thread类或实现Runable接口。实现Runnable接口比继承Thread类所具有的优势:适合多个相同的程序代码的线程去处理同一个资源;可以避免java中的单继...

java轻松实现—定时任务

  • 2011年05月04日 10:28
  • 2KB
  • 下载

java实现定时任务的三种方法

/** * 普通thread * 这是最常见的,创建一个thread,然后让它在while循环里一直运行着, * 通过sleep方法来达到定时任务的效果。这样可以快速简单的实现,代码如下: *...

java定时任务管理实现-quartz

java定时任务管理实现 博客分类:  Java 定时任务管理  Java代码   代码清单:    =========================...

JAVA实现定时调度任务

Spring定时任务的几种实现 一.分类 从实现的技术上来分类,目前主要有三种技术(或者说有三种产品): Java自带的java.util.Timer类,这个类允许你调度一个...

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

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

Quartz使用-入门使用(java定时任务实现)

注:这里使用的是Quartz1.6.5版本(包:quartz-1.6.5.jar)  [java] view plaincopy //测试main函...

java Quartz定时任务实现

注:这里使用的是Quartz1.6.6版本(包:quartz-1.6.5.jar)       [java] view plaincopy ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java中定时任务的实现
举报原因:
原因补充:

(最多只允许输入30个字)