`
chengyu2099
  • 浏览: 469049 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Tomcat 定时器 Timer

阅读更多
/**
 * TimerTaskCount.java
 * com.linkage.util
 *
 * Function: TODO 
 *
 *   ver     date      		author
 * ──────────────────────────────────
 *   		 Mar 10, 2010 		chengYu
 *
 * Copyright (c) 2010,  All Rights Reserved.
*/

package com.linkage.util.count;
/**
 * ClassName:TimerTaskCount
 * Project: 
 * Company: LINKAGE
 *
 * @author   chengYu
 * @version  
 * @since    Ver 1.1
 * @Date	 Mar 10, 2010		4:47:34 PM
 *
 * @see 	 
 */
import java.util.Timer;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TimerTaskCount implements ServletContextListener
{
	private final static Logger log = LoggerFactory.getLogger(TimerTaskCount.class);
	private Timer timer = null;
	public void contextInitialized(ServletContextEvent event)
	{
		log.info("-----------------监听器启动-----------------------");
//		在这里初始化监听器,在tomcat启动的时候监听器启动,可以在这里实现定时器功能
	    timer = new Timer(true);
	    log.info("---------------------------------------------------");
	    event.getServletContext().log("定时器已启动");//添加日志,可在tomcat日志中查看到
	    timer.schedule(new exportHistoryBean(event.getServletContext()),0l,(60*60*1000));
//	    调用exportHistoryBean,0表示任务无延迟,5*1000表示每隔5秒执行任务,60*60*1000表示一个小时。
	    event.getServletContext().log("已经添加任务");
	}
	public void contextDestroyed(ServletContextEvent event)
	{
//		在这里关闭监听器,所以在这里销毁定时器。
	    timer.cancel();
	    event.getServletContext().log("定时器销毁");
	}
}


/**
 * exportHistoryBean.java
 * com.linkage.util.count
 *
 * Function: TODO 
 *
 *   ver     date      		author
 * ──────────────────────────────────
 *   		 Mar 10, 2010 		chengYu
 *
 * Copyright (c) 2010,  All Rights Reserved.
*/

package com.linkage.util.count;
/**
 * ClassName:exportHistoryBean
 * Project: 
 * Company: LINKAGE
 *
 * @author   chengYu
 * @version  
 * @since    Ver 1.1
 * @Date	 Mar 10, 2010		5:15:18 PM
 *
 * @see 	 
 */
import java.util.Calendar;
import java.util.TimerTask;
import javax.servlet.ServletContext;
public class exportHistoryBean extends TimerTask
{
  private static final int C_SCHEDULE_HOUR = 0;
  private static boolean isRunning = false;
  private ServletContext context = null; 
  public exportHistoryBean(ServletContext context)
  {
      this.context = context; 
  }
 
  public void run()
  {
    Calendar c = Calendar.getInstance();
    if(!isRunning)
    {
      if(C_SCHEDULE_HOUR == c.get(Calendar.HOUR_OF_DAY))
      {
        isRunning = true;
        context.log("开始执行指定任务");
        //-------------------开始保存当日历史记录
       
       
        //在这里编写自己的功能,例:
        //File file = new File("temp");
        //file.mkdir();
        //启动tomcat,可以发现在tomcat根目录下,会自动创建temp文件夹
        
        //-------------------结束
        isRunning = false;
        context.log("指定任务执行结束");
      }
      else
      {
        context.log("上一次任务执行还未结束");
      }
    }
  }
}

web.xml

<!-- 定时器 -->
	<listener>
		<listener-class>com.linkage.util.count.TimerTaskCount</listener-class>
	</listener>
分享到:
评论

相关推荐

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

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

    Tomcat中简易定时器的实现

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

    timer随tomcat启动案例

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

    java,javaweb,spring定时器

    在Java Web环境中,例如在Tomcat这样的Servlet容器中,可以使用`javax.servlet.Timer`接口来创建定时任务,但这通常需要与Servlet生命周期关联,并且不适用于独立于Web容器的场景。 Spring框架提供了更高级的定时...

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

    定时器在Java中通常通过`java.util.Timer`类或`java.concurrent.ScheduledExecutorService`来实现。`Timer`适合简单的定时任务,而`ScheduledExecutorService`更强大,提供了更灵活的调度策略。在Servlet中,我们...

    web定时器组件

    1. java.util.Timer类和TimerTask类:这是Java标准库中最基础的定时器组件。Timer创建一个后台线程,TimerTask是可调度的任务。通过调用Timer的schedule方法,可以在指定时间或周期执行TimerTask。 2. javax.servlet...

    Tomcat的定时任务(计时器)

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

    java定时器定时调用任务

    在Servlet容器(如Tomcat)中,可以通过监听器(Listener)或者Servlet的初始化方法来创建和启动定时器,以实现在Web应用启动后自动开始执行定时任务。 此外,Java 5引入了`java.util.concurrent`包,其中的`...

    web定时器的实现思路

    - **Tomcat的Catalina Timer**:Tomcat Web服务器内建了一个定时器服务,可以在Web应用的上下文中创建和管理定时任务。这适用于那些不需要跨应用服务器的简单定时任务。 5. **JavaScript的Web定时器** - 在Web...

    用JMeter来测试Tomcat的性能.docx

    JMeter 的执行过程和步骤,一个完整的测试计划包括一个或者多个线程组(Thread Groups)、逻辑控制(Logic Controller)、实例产生控制器(Sample Generating Controllers)、侦听器(Listener)、定时器(Timer)、...

    tomcat部署atlassian-jira-5.2.4需要的jar包及参考文档

    4. **jonas_timer-1.4.3.jar**:这是OpenESB Jonas项目的定时器组件,可能被JIRA用来执行定时任务。 5. **jta-1.0.1B.jar**:Java Transaction API(JTA)库,为分布式事务处理提供支持,与JOTM一起工作。 这些jar...

    用JMeter来测试Tomcat的性能

    JMeter 的执行过程和步骤,一个完整的测试计划包括一个或者多个线程组(Thread Groups)、逻辑控制(Logic Controller)、实例产生控制器(Sample Generating Controllers)、侦听器(Listener)、定时器(Timer)、...

    jsp资料_春梦_春天_删除_定时器_发布_

    Java提供Timer类和TimerTask类来实现定时任务,而JSP可以通过后台线程或ScheduledExecutorService来安排这些任务。 **应用发布** “发布”指的是将开发完成的Web应用部署到服务器上,使其可供网络上的用户访问。这...

    用JMeter来测试Tomcat的性能分享.pdf

    例如,可以添加一个Constant Throughput Timer,以确保在特定时间内保持恒定的请求数量。 4. **监听器**:监听器收集并显示测试结果,如响应时间、错误率等。你可以添加View Results Tree或聚合报告监听器,以便...

    Javaweb 定时器功能代码实例

    Java 6引入的`java.util.concurrent`包提供了一个实用的定时器类`Timer`,可以方便地创建定时任务。本篇文章将通过一个具体的代码实例,讲解如何在Javaweb项目中利用`Timer`实现定时器功能。 首先,我们需要创建一...

    ftp定时下载

    【Timer定时器】是Java中的一个类,位于java.util包下,它提供了一种安排在给定时间执行的任务的能力。定时器可以用来定期执行某个任务,也可以在指定延迟后执行一次。在这个FTP定时下载的实现中,Timer类被用来设定...

    监听服务器接口

    C#中的System.Timers.Timer或者System.Threading.Timer可以实现定时任务,配合DateTime和DateTimeOffset类设置定时触发事件。此外,Windows的任务计划程序也可以用来安排定期执行的脚本或程序。 “添加日志”是软件...

    SomeJava:将以往项目应用中各种框架、中间件的使用方式抽取出来,希望以后给刚接触直接运行,入门参考。。

    SomeJava ###技术笔记 慢慢整理成博客: ###tomcat Tomcat6 6版本是个经典,自己整理可以跑起来的Tomcat代码,阅读学习。 tomcat-work 是《How Tomcat Works》的代码,可惜是Jdk1.4的,也可以作为学习用。...timer 环境

    总结J2EE中使用任务调度三种方式

    本文将深入探讨三种在J2EE环境中实现任务调度的方式:Java内置的定时器API(java.util.Timer)、Servlet容器的定时任务以及第三方库Quartz。 ### 1. Java内置定时器API Java标准库提供了`java.util.Timer`类和`...

    使用JMeter进行性能测试

    添加定时器(Timer),如Constant Timer,来设定请求之间的固定等待时间;以及添加断言(Assertion),确保服务器返回的数据符合预期。 通过这些丰富的功能,JMeter提供了一个强大的测试平台,帮助测试人员在软件...

Global site tag (gtag.js) - Google Analytics