Javaweb中的定时器

Posted DC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javaweb中的定时器相关的知识,希望对你有一定的参考价值。

 

 

1.任务类

import java.util.TimerTask;
import javax.servlet.ServletContext;

public class MyTask extends TimerTask{
    private ServletContext context = null;
    
    public CleanTpIpTask(ServletContext servletContext) {
        this.context = servletContext;
    }

    @Override
    public void run() {
        //定时任务逻辑代码
    }

}

2.监听类

import java.util.Calendar;
import java.util.Date;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class MyTaskListener implements ServletContextListener {
    private java.util.Timer timer = null; 
    MyTask myTask = null;
    public void contextDestroyed(ServletContextEvent arg0) {
        timer.cancel();
        
    }
    public void contextInitialized(ServletContextEvent arg0) {
        Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        int day = c.get(Calendar.DAY_OF_MONTH);
        c.set(year, month, day, 3, 0, 0);//项目启动当天凌晨3点执行1次,如果已经超过凌晨3点,立刻执行
        Date date = c.getTime();
        timer = new java.util.Timer(true); 
        
        int period = 24 * 60 * 60 * 1000;//执行间隔
        if(myTask==null){
            myTask = new MyTask(arg0.getServletContext());
            timer.schedule(new MyTask(arg0.getServletContext()), date, period);
   //timer.schedule(new CleanTpIpTask(arg0.getServletContext()), date);//只执行1次 //timer.schedule(new CleanTpIpTask(arg0.getServletContext()), 0, period);//项目启动立刻执行,每隔period 毫秒执行1次
        }
    }
}

 3.在web.xml中配置

  <listener>
      <listener-class>webservice.MyTaskListener</listener-class>
  </listener>

 

以上是关于Javaweb中的定时器的主要内容,如果未能解决你的问题,请参考以下文章

《java精品毕设》基于javaweb宠物领养平台管理系统(源码+毕设论文+sql):主要实现:个人中心,信息修改,填写领养信息,交流论坛,新闻,寄养信息,公告,宠物领养信息,我的寄养信息等(代码片段

CPNtools协议建模安全分析---实例变迁标记

JavaWeb03-HTML篇笔记

javaweb,监听器和定时器(Quartz)互相调控的问题

java中怎么实现定时功能

javaweb入门-----jsp概念