Java中定时器的使用

时间:2021-08-28 13:15:45

1、新建一个监听类,用于监听所有的定时器

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class WebFrameListener implements ServletContextListener
{
WebFrameServiceEntrance wfs;
/**
* 启动
*/
public void contextInitialized(ServletContextEvent arg0)
{
/*
* 定时任务
* 1、基础数据初始化,在启动时执行一次;
*/
wfs = new WebFrameServiceEntrance();
wfs.webFrameServiceStart();
}
/**
* 销毁
*/
public void contextDestroyed(ServletContextEvent arg0)
{
//调用结束的方法
wfs.webFrameServiceCancel();
}
}

 

2、监听入口类

import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Timer;public class WebFrameServiceEntrance{/*** 计时器,能够在指定时间内重复的执行操作*/private Timer timer;long IntervalTime = 60 * 1000;//执行的周期时间:1分钟public WebFrameServiceEntrance(){timer = new Timer();}/*** 开始执行*/public void webFrameServiceStart(){/*** 一次性调用,只在启动Web服务时调用下方法,用于启动时初始化相应内容*///初始化系统配置-只执行一次SystemProperties.init();/*** 增加调用定时任务,一分钟一次*/Calendar calendar = Calendar.getInstance();calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);Date date = calendar.getTime();timer.schedule(new WebFrameServiceTimerTask(), date, IntervalTime);}/*** 取消执行*/public void webFrameServiceCancel(){//      System.out.println("取消定时任务扫描器!");timer.cancel();timer = null;}}

 

3、新建任务处理类

import java.util.TimerTask;public class WebFrameServiceTimerTask extends TimerTask{/*** 被周期调用执行的方法*/public void run(){//定时任务业务处理}}