`
javaeyetodj
  • 浏览: 431470 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java定时器案例

阅读更多

转自http://tomenjoy.iteye.com/blog/157268

2007年09月12日 星期三 下午 04:(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 Timer定时器实例 Spring实例.doc

    【Java Timer定时器】 在Java中,`java.util.Timer` 类是用于调度任务的类,它可以在特定的时间点或者按照设定的周期执行某项任务。`Timer` 类提供了两种计划任务的方法:`schedule(TimerTask task, long delay)` ...

    java_Timer定时器实例_Spring实例

    标题与描述均提到了“Java_Timer定时器实例_Spring实例”,这表明文章主要讨论的是如何在Java中使用Timer类创建定时任务,并将其整合到Spring框架中。以下是对该主题的详细解析: ### Java中的Timer定时器 #### ...

    一个基础的Quartz定时器案例

    在这个基础的Quartz定时器案例中,我们将探讨如何使用Quartz API来创建、配置和执行定时任务。 首先,Quartz的核心组件包括Job(任务)、Trigger(触发器)和Scheduler(调度器)。Job是实际需要执行的任务,...

    java 定时器任务timer 随tomcat启动而启动 同步启动

    我们通常写的timer都是用main方法写的定时器,但同样我们也需要根据服务器启动后定时器也启动的 定时执行任务。不过有个致命伤就是集群方面跟quartz不能比,此方法代码做参考不错,如果要用,那么这个方法在一台...

    spring定时器案例

    综合来看,"spring定时器案例"是一个展示如何在Spring应用中配置和使用定时任务的实践项目。通过学习和分析这个案例,开发者可以掌握如何在自己的项目中实现定时任务,如执行数据清理、发送邮件通知或进行定期报告等...

    一个简单定时器的例子

    Java 提供了强大的定时器类 `java.util.Timer` 来帮助开发者轻松实现这些功能。本文将通过一个简单且代码清晰的定时器示例来介绍如何使用 Java 的 `Timer` 类。 #### 定时器基础知识 在 Java 中,`java.util.Timer...

    精确定时1秒 定时器2my

    ### 三、定时器2的应用案例 #### 3.1 实现1秒定时 通过调用`T2_set()`函数设置定时器2的计数值,然后进入循环等待直到定时结束。例如: ```c T2_set(1000); //设置定时器2计数1000次,即1秒 while (!T2_time()); //...

    java GUI程序案例

    本案例聚焦于Java GUI程序的设计和组件的使用,我们将深入探讨以下几个方面: 1. **Java Swing库**:Java GUI的主要构建模块之一是Java Swing库,它是Java AWT(Abstract Window Toolkit)的扩展。Swing提供了更多...

    Java 学习案例,电子地图模块

    这可以通过Java的定时器(Timer)和动画框架(如JavaFX的Timeline)来实现。 总之,"Java 学习案例,电子地图模块"是一个综合性的项目,涵盖了GUI设计、数据处理、GIS应用、网络编程、性能优化等多个方面,对于提升...

    120套java经典案例库.pdf

    标题“120套java经典案例库.pdf”所指的知识点为Java编程领域中的经典示例集合。这些案例往往被设计为教学和实践的重要资源,旨在帮助开发者巩固和深化Java语言的理解。描述中提到“每个案例都进行了详细分析”,这...

    spring定时器3.0之前和3.0之后以及相应的项目实例

    在Spring 2.5.6版本中,定时任务主要基于`java.util.Timer`和`java.util.TimerTask`类,这是一个简单的定时器API,适合一些基本的定时需求。要使用Spring的定时器功能,首先需要配置一个`TimerTask`实现,然后在...

    贪吃蛇(java编程案例)

    其次,游戏的运行基于时间驱动,Java的定时器(java.util.Timer)和定时任务(java.util.TimerTask)是实现这一机制的关键。通过设置定时器,我们可以控制蛇的移动速度,并定期更新游戏状态。 GUI界面是贪吃蛇游戏...

    java 游戏程序 JAVA小程序案例.rar

    在这个“JAVA小程序案例”压缩包中,包含了一个MIDP俄罗斯方块游戏的设计与实现,以及一个汉诺塔自动演示的项目。这两个例子都是Java在游戏开发中的经典应用,它们可以帮助我们深入理解如何用Java来创建互动式的娱乐...

    JAVA飞机大战案例

    综上所述,“JAVA飞机大战”案例涵盖了Java基础、面向对象编程、GUI设计、事件处理、碰撞检测、动画实现、资源管理等多个核心知识点,对于提升Java编程能力和理解面向对象设计有极大的帮助。通过这个案例的学习,...

    常见定时器问题解答

    2. 应用级定时器:在应用程序中使用的定时器,如JavaScript的setTimeout和setInterval,Java的ScheduledExecutorService,C#的Timer类等。 二、定时器常见问题 1. 精度问题:定时器的触发时间可能与预期不同,这...

    《Java十大经典案例》源代码

    《Java十大经典案例》源代码是一份集合了Java编程语言的经典应用示例,旨在帮助学习者深入理解Java语言的核心特性和编程技巧。这份资源包含了多种类型的小游戏,如俄罗斯方块和五子棋,这些都是非常典型的面向对象...

    Java练习用的案例源码

    对于初学者来说,通过实践各种案例来学习Java是至关重要的。本资料包包含了一系列的Java练习用案例源码,旨在帮助新手更好地理解和掌握Java编程。 1. **简单聊天程序** 这个案例展示了如何使用Java实现一个简单的...

    基于spring和quartz的定时任务案例

    要开始这个案例,首先需要在项目中引入Spring和Quartz的相关依赖。通常,这会在pom.xml文件中通过Maven进行配置,添加如下依赖: ```xml <groupId>org.springframework <artifactId>spring-context <version>5....

    JAVA精编案例

    6. **动画**:Java可以使用定时器和帧率控制来创建平滑的动画效果。Swing库中的Timer类或者JavaFX的Animation API都能帮助实现这一目标。 7. **音频和多媒体**:Java Sound API提供了播放音频和处理多媒体文件的...

    java动态时钟案例

    在这个案例中,我们可以通过以下步骤来实现一个简单的动态时钟: 1. **导入必要的库**: 首先,我们需要导入`javax.swing.*`库来构建GUI,以及`java.awt.*`和`java.util.Timer`库来处理定时任务和时间显示。 2. *...

Global site tag (gtag.js) - Google Analytics