WEB定时器-Timer

原创 2007年09月21日 11:17:00
Java定时器(java.util.Timer)有定时触发计划任务的功能,通过配置定时器的间隔时间,在某一间隔时间段之后会自动有规律的调用预先所安排的计划任务(java.util.TimerTask)。另外,由于我们希望当Web工程启动时,定时器能自动开始计时,在整个Web工程的生命期里,定时器能在每晚深夜触发一次报表计算引擎。因此定时器的存放位置也值得考查,不能简单的存在于单个Servlet或JavaBean中,必须能让定时器宿主的存活期为整个Web工程生命期,在工程启动时能自动加载运行。结合这两点,跟Servlet上下文有关的侦听器就最合适不过了,通过在工程的配置文件中加以合理配置,会在工程启动时自动运行,并在整个工程生命期中处于监听状态。

......下面就Servlet侦听器结合Java定时器来讲述整个实现过程。要运用Servlet侦听器需要实现javax.servlet.ServletContextListener接口,同时实现它的contextInitialized(ServletContextEvent    event)和contextDestroyed(ServletContextEvent    event)两个接口函数。考虑定时器有个建立和销毁的过程,看了前面两个接口函数,就不容置疑的把建立的过程置入contextInitialized,把销毁的过程置入contextDestroyed了。
package com.derek.servlet;

import javax.servlet.*;
import javax.servlet.http.*;
import com.derek.pub.TimerManager;
/**
 * 启动定时器的监听器
 * 
@author derek
 * 
@version 1.0
 
*/
public class TimerListener extends HttpServlet implements
        ServletContextListener {
    
private TimerManager tm = null;
    
//Notification that the web module is ready to process requests
    public void contextInitialized(ServletContextEvent sce) {
      
int day,hour,min,sec;      
      day 
= 26; hour = 16; min = 42; sec = 0;     
      tm 
= new TimerManager(day,hour,min,sec);
    }

    
//Notification that the servlet context is about to be shut down
    public void contextDestroyed(ServletContextEvent sce) {
       tm.destoryTimer();
    }
}
package com.derek.pub;

import java.util.Timer;
import java.util.Date;
import java.util.Calendar;

/**
 * 定时器
 * 
@author derek
 * 
@version 1.0
 
*/
public class TimerManager {
    Timer t 
= null;
    
public TimerManager(int day,int hour,int min,int sec) {
        time(day,hour,min,sec);
    }
 
    
public void time(int day,int hour,int min,int sec){    
    Calendar c 
= Calendar.getInstance();
    c.set(Calendar.DAY_OF_MONTH,day);
    c.set(Calendar.HOUR_OF_DAY,hour);
    c.set(Calendar.MINUTE,min);
    c.set(Calendar.SECOND,sec);
    Date date 
= c.getTime();
    System.out.println(c.getTime());
    t
= new Timer();
    MyTask mt 
= new MyTask();
    t.schedule(mt,date);
    }
    
public void destoryTimer(){
    t.cancel();
    }
}
package com.derek.pub;
import java.util.TimerTask;
/**
 * 计划任务代码
 * 
@author derek
 * 
@version 1.0
 
*/
public class MyTask extends TimerTask{
    
public MyTask() {
    }
    
/**
     * 任务块
     
*/
    
public void run() {
        System.out.println(
"定时器RUN");
    }
}
 
 

java web 项目中 简单定时器实现 Timer

java web 项目中 简单定时器实现 Timer 项目背景: 系统中有一个存放压缩文件的临时文件夹。当时间长了后 存放文件多了,占用磁盘空间过大 让费资源, 所以需要定期去清理临时文件夹下的文...
  • sessionsong
  • sessionsong
  • 2016年01月14日 17:28
  • 8328

Timer实现定时执行

原文地址:Timer实现定时执行 原文地址: 3秒后执行: Timer timer = new Timer(); timer.schedule(new TimerTas...
  • zizidemenghanxiao
  • zizidemenghanxiao
  • 2015年10月21日 21:39
  • 259

WebSphere定时器 Commonj Timer 配置

前段时间因为要实现一个定时器功能,然后就用JDK提供的java.util.Timer来实现,调试发现在定时器里面拿不到JNDI,网上查了资料才知道,其创建的线程会超出容器的管理范围,是拿不到JNDI的...
  • llxww104
  • llxww104
  • 2013年10月18日 15:08
  • 938

JavaWeb Timer&TimerTask 定时任务

JavaWeb 在程序启动时,定时执行计划任务。
  • thinkscape
  • thinkscape
  • 2014年06月12日 16:10
  • 3070

Timer定时器详解

Timer定时器详解
  • jihaitaowangyi
  • jihaitaowangyi
  • 2016年10月15日 15:00
  • 1823

详解Timer定时器

一、概述 Timer类的全名为java.util.Timer,直接继承了java.lang.Object类,它主要提供定时器的功能。 Timer是一种线程用于调度任务的工具,被调度...
  • yang1982_0907
  • yang1982_0907
  • 2014年02月20日 09:54
  • 1293

写一个定时器Timer,随服务器一起启动

写一个定时器Timer,随服务器一起启动10 1、搭建SSH框架环境  2、写一个定时器Timer,随服务器一起启动。  3、做一个前台页面,有两个按钮《开始》、《停止》能控制Timer。 ...
  • evilcry2012
  • evilcry2012
  • 2016年09月21日 12:53
  • 883

定时器 Timer和TimerTask详解

如果要执行一些简单的定时器任务,无须做复杂的控制,也无须保存状态,那么可以考虑使用JDK 入门级的定期器Timer来执行重复任务。   一、原理   JDK中,定时器任务的执行需要两个基本的类...
  • aXFD_YY
  • aXFD_YY
  • 2016年08月18日 17:42
  • 362

WEB.XML中加载定时器的配置方式

将不同的业务继承任务,定时器执行的时候只需要执行一个任务即可。   创建servlet,重写init(),service(),destroy()方法,初始化创建 并且启动定时器。 private Ti...
  • tongge01uuu
  • tongge01uuu
  • 2013年08月09日 17:00
  • 4183

Servlet监听器与Timer定时器配合实现JAVA WEB应用简单自动作业

在web应用中,有时候客户需要一些定时程序,不需要客户自己去操作,而是由应用程序自行触发执行某些操作。这个时候监听与定时器的配合使用就基本可以实现这个需求了。      1.创建一个监听的SERVEL...
  • zmx729618
  • zmx729618
  • 2016年05月13日 16:37
  • 2958
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WEB定时器-Timer
举报原因:
原因补充:

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