Java中定时器的使用
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()
{
//定时任务业务处理
}
}
推荐阅读: