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

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
  Java面向对象编程-->图形用户界面(上)
  JavaWeb开发-->自定义JSP标签(Ⅰ)
  JSP与Hibernate开发-->映射一对多关联关系
  Java网络编程-->非阻塞通信
  精通Spring-->CSS过渡和动画
  Vue3开发-->Vue Router路由管理器
  Servlet中读JSON请求数据和写JSON响应数据
  做前后端分离项目前必须要知道的事
  HTTP的状态代码的含义
  HTTP 响应头信息
  HTTP 请求方式
  JSP 点击量统计范例
  Servlet的运作原理
  tomcat+nginx域名配置方法
  用信鸽来解释HTTPS协议
  用@WebFilter配置过滤器
  JSP中对异常的处理
  JSP2和Servlet3的一些新特性
  Tomcat的工作模式和运行模式
  Java高级——HTTP重定向实现负载均衡
  Log4J日志生成工具的用法指南
  更多...
 IPIP: 已设置保密
楼主      
该用户目前不在线 kericnnoe 
威望: 未知
级别: 未知
魅力: 未知
经验: 未知
现金: 未知
发文章数: 未知
注册时间: 未知
 复制  引用


沙龍娛樂城的玩家最主要做的事情,就是利用百家樂分析、百家樂贏錢公式、百家樂攻略等百家樂投注技巧,去推測沙龍百家樂下一局會開出莊家還是閒家。但其實下注SA百家樂需要的也並不是只有技巧而以,有些心法、心態也是相當重要的,也可以說技巧跟心法是缺一不可的存在,不管是缺少哪一項,就不法穩定的在SA百家樂贏錢了
发文章时间 2024-09-04 09:16:47
 IPIP: 已设置保密 1 楼     
1页 1条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。