`
hesihua
  • 浏览: 233714 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

tomcat中的java实现定时器

 
阅读更多

下面的这篇文章对我非常有用

 做web开发也有一段时间,但发现现在有定时器的功能应用得是越来越多,有时我们总是需要在深夜风站访问量低的时候做一些工作,比如说数据转移,有些对账日志的生成,向一些接口平台上传或下载文件,以前在做PHP开发的时候这些任务都是要依懒于服务器计划任务或者自己写一些应用放到服务器上运行。但最近在做Java开发的时候却发现这一点非常让人满意,我们直接可以用Servlet侦听器结合Java定时器就可以实现这一过程了,简单讲一下这个过程:首先我们需要实现javax.servlet.ServletContextListener接口,同时实现它的contextInitialized (ServletContextEvent event)和contextDestroyed(ServletContextEvent event)两个接口函数。考虑定时器有个建立和销毁的过程,看了前面两个接口函数,就不容置疑的把建立的过程置入 contextInitialized,把销毁的过程置入contextDestroyed了。 

我把ServletContextListener的实现类取名为SysContextListener,在其内添加一个定时器,示例代码如下所示: 

  1. package com.lenovo.utils; 
  2.   
  3. import java.util.Timer;//定时器类 
  4. import javax.servlet.ServletContextEvent; 
  5. import javax.servlet.ServletContextListener; 
  6. public class SysContextListener implements ServletContextListener 
  7.   private Timer timer = null
  8.   //重写contextInitialized 
  9.   public void contextInitialized(ServletContextEvent event) 
  10.   { 
  11.       //在这里初始化监听器,在tomcat启动的时候监听器启动,可以在这里实现定时器功能 
  12.       timer = new Timer(true); 
  13.       //添加日志,可在tomcat日志中查看到 
  14.       event.getServletContext().log("定时器已启动"); 
  15.       //调用定时任务,0表示任务无延迟,5*1000表示每隔5秒执行任务,触发间隔以毫秒计算。 
  16.       timer.schedule(new TimerAction(),0,5*1000); 
  17.        
  18.       event.getServletContext().log("已经添加任务"); 
  19.   } 
  20.   //重写contextDestroyed 
  21.   public void contextDestroyed(ServletContextEvent event) 
  22.   { 
  23.       //在这里关闭监听器,所以在这里销毁定时器。 
  24.       timer.cancel(); 
  25.       event.getServletContext().log("定时器销毁"); 
  26.   } 

以上代码中, timer.schedule(new TimerAction(event.getServletContext()), 0, 5*1000)这一行为定时器调度语句,其中TimerAction是自定义需要被调度的执行任务,默认的情况下是调用run()方法,下面会重点讲述,第三个参数表示执行周期(单位为毫秒),中间参数0表示无延迟。

下面是执行的任务代码:

  1. package com.lenovo.utils; 
  2.  
  3. import java.util.TimerTask; 
  4.  
  5. public class TimerAction extends TimerTask { 
  6.  
  7.     public void run() { 
  8.          
  9.         //此处编写任务内容 
  10.         System.out.println("this is a Timer action"); 
  11.          
  12.     } 
  13.  

到这儿,ServletContextListener和TimerAction的代码都已完整了,也就是程序执行都已经完成了,到了这儿并没有完成的。我们还需要的j把ServletContextListener部署到您的Web工程中去,在您工程的web.xml配置文件中web-app节点中加入如下三行:

  1. <listener> 
  2.     <listener-class> 
  3.         com.lenovo.utils.SysContextListener 
  4.     </listener-class> 
  5. </listener> 

 

这个是从网上抄的: 原链接为: http://www.joyphper.net/article/201107/131.html

分享到:
评论

相关推荐

    Tomcat中简易定时器的实现

    本篇文章将探讨如何在Tomcat中实现一个简单的定时器,以自动化执行特定任务。这个定时器的实现通常涉及使用Java的定时器类`java.util.Timer`和`java.util.TimerTask`。 首先,我们关注`MyTimerTask.java`这个文件,...

    java tomcat 定时器处理

    Tomcat下定时器重复执行2次的解决方案

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

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

    java定时器定时调用任务

    Java定时器定时调用任务是Java编程中一个重要的功能,它允许开发者在特定的时间间隔执行某项任务,比如定期检查数据库、发送邮件或者执行维护操作等。Java中的定时任务实现通常涉及`java.util.Timer`类和`java.util....

    JAVA 定时器及SqlServer和Oracle封装链接数据库.docx

    本文档提供了从JDK安装、Tomcat安装配置、数据库连接以及Java定时器实现的完整流程,适合初学者快速入门。通过详细的步骤说明与示例代码,帮助读者理解每一个环节的关键技术点。特别是对于数据库操作的封装,极大...

    java,javaweb,spring定时器

    综上所述,Java定时器在不同场景下有多种实现方式,包括Java基础库中的`Timer`和`ScheduledExecutorService`,以及在Java Web和Spring框架中的高级解决方案。选择哪种方式取决于具体的需求,如并发控制、任务粒度、...

    web定时器的实现思路

    这篇博文链接指向的是一个关于在Java应用程序中实现Web定时任务的讨论,虽然具体的细节没有给出,但我们可以根据这个主题来深入探讨Web定时器的实现思路。 1. **Java定时框架** - ** Quartz Scheduler**:Quartz是...

    java web 定时器

    javaweb定时器,需要tomcat6,部署后启动tomcat,访问index.jsp页面,定时器工作,kill Tomcat服务结束工作,本人用的Sql2000数据库,可以自行更改。完整工程源代码。

    简单的jsp 定时器实例

    本实例将介绍如何在MyEclipse开发环境中,结合Tomcat服务器和SQL Server 2000数据库,实现一个基础的JSP定时器。 1. **JSP定时器原理** JSP定时器并非直接由JSP本身提供,而是通过JavaScript或者Java的Servlet来...

    quartz+maven,Java定时器

    这个压缩包“quartz_maven”很可能是包含了一个使用Quartz和Maven构建的Java定时器示例项目。 在这个项目中,开发者可能已经配置好了一切必要的设置,包括Maven的pom.xml文件,用于声明项目依赖,特别是对Quartz库...

    Tomcat的定时任务(计时器)

    本文将深入探讨如何在Tomcat中实现定时任务,主要涉及的知识点包括Java的定时器(Timer)和Spring框架的TaskScheduler。 首先,让我们了解一下Java中的定时任务。在Java标准库中,有一个名为`java.util.Timer`的类...

    tomcat 定时作业

    首先,我们要了解Tomcat中的定时任务通常通过Java的定时框架来实现,最常见的是Java的ScheduledExecutorService或者使用Spring框架的TaskScheduler。这两种方式都可以在Tomcat容器内创建定时任务。 1. **使用...

    servlet定时器功能完整版已测试过

    本项目中的"Servlet定时器功能完整版已测试过"是一个Java Web应用,利用Servlet实现了定时器功能。这通常涉及到计划执行的任务,例如数据备份、日志清理或者定期发送通知等。 首先,我们要理解Servlet容器如Tomcat...

    java实现工作流

    - **定时刷新页面**:通过JavaScript定时器实现页面的自动刷新功能。 - **JSP中文问题的解决**:设置正确的编码格式,避免中文乱码问题。 #### 结束语 通过以上内容可以看出,基于Java的工作流技术可以有效地提高...

    spring定时器实现源码

    在本篇中,我们将深入探讨如何在 Spring 框架中实现定时任务功能,特别是使用 Spring MVC 和 Maven 进行构建的情况。 首先,Spring 提供了一个名为 `TaskScheduler` 的接口,用于执行定时任务。这个接口允许我们...

    web定时器组件

    在本文中,我们将深入探讨Web定时器组件的概念、实现方式以及在Java中的应用。 一、Web定时器组件的重要性 1. 自动化任务:定时器组件可以自动化执行重复性或计划性的任务,减轻开发人员手动操作的负担。 2. 提高...

    flowable官方提供的6.4.0和6.7.2的Tomcat部署的war包

    总的来说,通过在Tomcat上部署Flowable的WAR包,企业可以快速构建和部署自己的工作流系统,实现业务流程的自动化和规范化。对于开发者而言,理解Flowable的功能和Tomcat的部署机制是至关重要的,这有助于他们更好地...

    javaweb定时器

    JavaWeb定时器是一种在Web应用程序中实现周期性任务的关键技术,它允许开发者安排任务在特定时间间隔内自动执行。在本项目中,我们看到的是一个简单的Java定时器,设计为每三秒执行一次。这个定时器可能是基于Java的...

    Java实现俄罗斯方块源码以及jar、exe文件

    这些逻辑通常在独立的类或方法中实现。 7. **资源管理**:如果游戏中有音效或图像,就需要加载和管理这些资源。Java的`InputStream`和`ImageIcon`类可以帮助处理这些内容。 8. **打包与部署**:将所有文件打包成...

    timer随tomcat启动案例

    本案例“timer随tomcat启动案例”就是针对这种情况的一个实例,它利用了Java的定时器(Timer)类和Tomcat的生命周期管理来实现在Tomcat服务器启动时自动运行的任务。 首先,我们要理解`Timer`类是Java.util包下的一...

Global site tag (gtag.js) - Google Analytics