>>分享Java Web开发技术,并且对孙卫琴的《Tomcat与Java Web开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 23998 个阅读者 刷新本主题
 * 贴子主题:  Java web使用监听器实现定时周期性执行任务的功能 回复文章 点赞(0)  收藏  
作者:flybird    发表时间:2024-03-09 00:45:43     消息  查看  搜索  好友  邮件  复制  引用

Java web使用监听器实现定时周期性执行任务的功能在做web项目的时候,有时需要做个定时的功能去执行某个任务,或者定时周期性去执行某个任务,如定时邮件发送、文件删除等。那么,我们就需要借助监听器去实现这一个功能,具体的实现过程如下:

1.配置web.xml,添加监听器指定类
<!-- 定时监听器配置 -->
<listener>
<listener-class>listener.DuetimeListener</listener-class>
</listener>

2.监听类实现ServletContextListener接口,实现监听功能


public class DuetimeListener implements ServletContextListener{
private Timer timer = null;

@Override
public void contextDestroyed(ServletContextEvent event) {
timer.cancel();
}

@Override
public void contextInitialized(ServletContextEvent event) {

// 添加tomcat日志
event.getServletContext().log("定时器已启动");
System.out.println("定时器启动");

try {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 12); // 控制时,24小时制
calendar.set(Calendar.MINUTE, 0);  // 控制分
calendar.set(Calendar.SECOND, 0);  // 控制秒

Date time = calendar.getTime(); // 执行任务的时间,可自行修改,此时为12:00:00

timer = new Timer(true);
//参数1:需要执行的类,参数2:执行时间,参数3:执行周期(参数可自行修改)
//类需要继承util的TimeTask,默认执行类下的run()方法;
timer.scheduleAtFixedRate(new TestTimeTask(), time, 1000 * 60 * 60 * 24);  //隔一天(周期性)扫描执行方法,

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

  3.功能类继承TimerTask类,默认执行run方法


public class TestTimeTask extends TimerTask {

@Override
public void run() {
System.out.println("定时扫描监听器程序开始执行,发送邮件");
deleteFile();
sendEmail();
//to do
}

public boolean deleteFile(){
System.out.println("定时执行删除文件的方法");
return true;
//to do
}

public boolean sendEmail(){
System.out.println("定时执行发送邮件的方法");
return true;
//to do
}

}

4.该demo,只用到web.xml、DuetimeListener.java、TestTimeTask.java三个文件,只是实现定时监听、周期性执行任务的功能,而邮件发送、文件删除等自定义功能需要自行添加上去,只需在run方法下修改邮件发送、文件删除等功能即可;

5.demo链接:http://download.csdn.net/detail/alan_liuyue/9834172
————————————————
原文链接:https://blog.csdn.net/alan_liuyue/article/details/71194454


程序猿的技术大观园:www.javathinker.net
网站系统异常


系统异常信息
Request URL: http://www.javathinker.net/WEB-INF/lybbs/jsp/topic.jsp?postID=1068

java.lang.NullPointerException

如果你不知道错误发生的原因,请把上面完整的信息提交给本站管理人员