`
chengyu2099
  • 浏览: 460276 次
  • 性别: 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不能比,此方法代码做参考不错,如果要用,那么这个方法在一台...

    struts2.2.3 + spring3.1.0 + mybatis3.1.0集成简单Demo

    1、用户的增、删、改、查,部署在Tomcat6+JDK1.5中。 2、定时器(timer),定时向数据库插入数据。 3、推技术(push) 项目中用到,个人总结的,希望能够帮助大家!

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

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

    Websocket案例

    运用timer类来定时获取。按照面向对象的思想,分层次来写出获取cpu方法的实现类以及接口。这里对学习websocket的童鞋以及初学java架构思想有很好的帮助。 另外前台利用百度Echart来展示动态效果。 这对于学习Echart...

    ftp定时下载

    可实现ftp下载的定时开启和关闭,同步ftp文件到本地 环境jdk1.7 tomcat7

    JAVA 范例大全 光盘 资源

    实例128 定时器(Timer) 371 实例129 没法吃饭(死锁) 372 实例130 方便吃饭(解决死锁) 375 实例131 查看JVM中所有的线程和线程组 376 实例132 执行任务(线程池) 378 实例133 碰撞的球(多线程) 382 ...

    JBPM4工作流应用开始指南.rar

    深入jPDL和jBPM Service API 201 10.1 timer(定时器)能为您做什么 201 10.1.1 持续时间表达式 202 10.1.2 工作日历 202 10.1.3 定时转移 204 10.1.4 定时事件 205 10.1.5 工作日历定时 207 10.1.6 定时重复 208 ...

    JAVA上百实例源码以及开源项目

    像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...

    JAVA上百实例源码以及开源项目源代码

    像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...

Global site tag (gtag.js) - Google Analytics