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>