DataMoveTask类实现定时任务:
该项目是基于Spring-boot构建的,添加此注解@Component 能够保证在服务器启动的时候运行该类。无需设置web.xml
import org.springframework.stereotype.Component;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import java.util.*;
@Component
public class DataMoveTask implements ServletContextListener {//实现ServletContextListener接口
private Timer timer = null;
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
timer = new Timer(true);
servletContextEvent.getServletContext().log("定时器已启动");
timer.schedule(new OneTask(),60000,1800000);//延迟60秒,定时30分钟
}
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
if (timer != null) {
timer.cancel();
servletContextEvent.getServletContext().log("定时器销毁");
}
}
class OneTask extends TimerTask{//继承TimerTask类
@Override
public void run() {
System.out.println("半小时一次数据迁移");
new MoveHandler().moveHandler(); //编写业务代码
}
}
}