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中如何用Quartz框架来实现定时任务(一)

Quartz介绍: Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单...
  • u013310119
  • u013310119
  • 2017年04月01日 10:01
  • 5614

Quartz-java定时任务实现

Quartz是一个完全由java编写的开源作业调度框架。 作为一个优秀的开源调度框架,Quartz 具有以下特点: 强大的调度功能,例如支持丰富多样的调度方法,可以满足各种常规及特殊需求;...
  • fly12310
  • fly12310
  • 2016年10月25日 17:08
  • 1845

Java中定时任务的实现:Timer与ScheduledExecutorService的不同

在做后台任务的时候经常需要实现各种各种的定时任务,本文介绍了Timer和ScheduledThreadPoolExecutor的使用。...
  • guozebo
  • guozebo
  • 2016年04月10日 22:48
  • 3809

spring整合java quartz实现动态定时任务的前台网页配置与管理

  • 2016年12月29日 16:37
  • 22.61MB
  • 下载

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

  • 2017年05月05日 11:20
  • 7KB
  • 下载

java轻松实现—定时任务

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

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

在应用里经常都有用到在后台跑定时任务的需求。举个例子,比如需要在服务后台跑一个定时任务来进行非实时计算,清除临时数据、文件等。在本文里,我会给大家介绍3种不同的实现方法: 普通thread实现T...
  • fan158
  • fan158
  • 2014年12月03日 10:29
  • 519

java中如何用Quartz框架来实现定时任务(一)

Quartz介绍: Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单...
  • u013310119
  • u013310119
  • 2017年04月01日 10:01
  • 5614

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

[java] view plain copy   /**   * 普通thread   * 这是最常见的,创建一个thread,然后让它在while循环里一直运行着, ...
  • guluxiaogong
  • guluxiaogong
  • 2016年10月19日 14:09
  • 65

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

/**  * 普通thread  * 这是最常见的,创建一个thread,然后让它在while循环里一直运行着,  * 通过sleep方法来达到定时任务的效果。这样可以快速简单的实现,代码如下:  *...
  • u011679955
  • u011679955
  • 2016年09月13日 22:18
  • 542
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java中定时任务的实现
举报原因:
原因补充:

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