java web实现计划定时任务

java web实现定时计划任务

1.定义一个类继承TimerTask,在run方法中写上需要执行的逻辑

package com.mytask;

import java.util.TimerTask;

public class MyTimeTask extends TimerTask{
    
    public void run() {
        System.out.println("执行任务");
    }
}

2.定义一个任务监听类,实现ServletContextListener 接口

package com.mytask;

import java.util.Timer;

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

public class TaskManager  implements ServletContextListener {

    private Timer timer = null;
    
    @Override
    public void contextInitialized(ServletContextEvent event) {
        // TODO 自动生成的方法存根
        timer = new java.util.Timer(true);
        System.out.println("------------定时器已启动----------------");
        //arg1:timertask
        //arg2:延迟时间
        //arg3:第一次调用之后,从第二次开始每隔多长的时间调用一次
        timer.schedule(new MyTimeTask(), 0, 10000);
        System.out.println("------------已经添加任务调度表-------------");
    }
    
    @Override
    public void contextDestroyed(ServletContextEvent event) {
        // TODO 自动生成的方法存根
        System.out.println("--------------定时器销毁-------------");
        timer.cancel();
    }

}

3.在web.xml配置上该监听

<listener>
      <listener-class>com.mytask.TaskManager</listener-class>
</listener>


 

原文地址:https://www.cnblogs.com/gavinYang/p/3684201.html