java tomcat定时器_Java web实现TOMCAT启动时加载程序里的定时器小记

下面就Servlet侦听器结合Java定时器来讲述整个实现过程。要运用Servlet侦听器需要实现

javax.servlet.ServletContextListener接口,同时实现它的contextInitialized   (ServletContextEvent   event)和contextDestroyed(ServletContextEvent   event)两个接口函数。考虑定时器有个建立和销毁的过程,看了前面两个接口函数,就不容置疑的把建立的过程置入   contextInitialized,把销毁的过程置入contextDestroyed了。我把ServletContextListener的实现类取名为ContextListener,在其内添加一个定时器,示例代码如下所示:

package com.tjsoft.buisness.util;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

import javax.servlet.http.HttpServlet;

public class ContextListener extends HttpServlet implements

ServletContextListener {

/**

*

*/

private static final long serialVersionUID = 1L;

public ContextListener() {

}

private java.util.Timer timer = null;

public void contextInitialized(ServletContextEvent event) {

timer = new java.util.Timer(true);

event.getServletContext().log("定时器已启动");

timer.schedule(new ExTask(event.getServletContext()), 0, 1000*10*5);

event.getServletContext().log("已经添加任务调度表");

}

public void contextDestroyed(ServletContextEvent event) {

timer.cancel();

event.getServletContext().log("定时器销毁");

}

}

以上代码timer.schedule(new   ExTask(event.getServletContext()),   0,   60*60*1000)这一行为定时器调度语句,其中ExTask是自定义需要被调度的执行任务

ExTask.java代码

package com.tjsoft.buisness.util;

import java.util.TimerTask;

import javax.servlet.ServletContext;

import com.tjsoft.buisness.action.ExAction;

public class ExTask extends TimerTask {

private static boolean isRunning = false;

private ServletContext context = null;

public ExTask(ServletContext context) {

this.context = context;

}

@Override

public void run() {

if (!isRunning) {

isRunning = true;

context.log("开始执行指定任务");

new ExAction().exDate();//这个位子就是你要定时的程序的入口.

isRunning = false;

context.log("指定任务执行结束");

} else {

context.log("上一次任务执行还未结束");

}

}

}

做完上面这些我们只是完了一个个定时器的设定,如果想要在tomcat启动时就加载,必须要配置web.xml还不够,

web.xml配置的内容如下

com.tjsoft.buisness.util.ContextListener

以上为个人在项目中所得,忘与各们共同进步O(∩_∩)O

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值