首页  >  文章  >  Java  >  java编写定时器,定时执行某个方法

java编写定时器,定时执行某个方法

高洛峰
高洛峰原创
2016-12-16 13:13:141543浏览

java编写定时器,定时执行某个方法

第一步:编写测试类,该类extends TimerTask,重新run()方法,run方法里面就是你要执行的逻辑代码,示例如下:

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimerTask;

public class MyTest1 extends TimerTask {
   private SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
 @Override
 public void run() {
     System.out.println("现在时间是:"+sf.format(new Date()));

     //此处编写程序逻辑代码
 }

}

第二步:编写一个类,该类实现ServletContextListener接口

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

public class TimerTaskManager implements ServletContextListener {
  private  Timer timer;
 @Override
 public void contextInitialized(ServletContextEvent sce) {
  System.out.println("程序定时执行任务.....................................");
  MyTest1 t=new MyTest1();
       timer=new Timer("开始执行任务",true);//
      timer.schedule(t, 0, 1000);//执行MyTest1中的run方法,t代表TimerTask的子类,0代表延迟0毫秒执行run方法,1000表示每隔一秒执行一次run方法,后面两个参数可根据自己的需求而定义

 }

 @Override
 public void contextDestroyed(ServletContextEvent sce) {
  System.out.println("程序定时执行任务结束.....................................");
  timer.cancel();
 }

}

第三步:在web.xml中添加如下代码里面填写TimerTaskManager的路径,程序在web容器启动后会初始化加载TimerTaskManager的contextInitialized方法:

加listener标签,listener里面加listener-class标签,listener-class标签里面内容为TimerTaskManager的路径,如:com.TimerTaskManager



更多java编写定时器,定时执行某个方法 相关文章请关注PHP中文网!


声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn