Maison  >  Article  >  Java  >  java编写定时器,定时执行某个方法

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

高洛峰
高洛峰original
2016-12-16 13:13:141543parcourir

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中文网!


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn