使用监听器实现Java Web的定时执行

简介: 定时器GoogleListener类:import java.util.Timer;//定时器类 import javax.

定时器GoogleListener类:

import java.util.Timer;//定时器类  
import javax.servlet.ServletContextEvent;  
import javax.servlet.ServletContextListener;  
  
import cn.edu.KFC.bean.GoogleTimer;  
  
  
public class GoogleListener implements ServletContextListener {  
    private Timer timer = null;  
  
    public void contextInitialized(ServletContextEvent event) {  
        // 在这里初始化监听器,在tomcat启动的时候监听器启动,可以在这里实现定时器功能  
        timer = new Timer(true);  
        // 添加日志,可在tomcat日志中查看到  
        event.getServletContext().log("定时器已启动");  
        System.out.println("定时器已启动");  
        // 调用GoogleTimer,0表示任务无延迟,5*1000表示每隔5秒执行任务,60*60*1000表示一个小时,24*60*60*1000表示一天。  
        timer.schedule(new GoogleTimer(event.getServletContext()), 0, 2 * 60 * 1000); //每2分钟执行一次GoogleTimer类  
        event.getServletContext().log("已经添加任务");  
        System.out.println("定时器已添加");  
    }  
  
    public void contextDestroyed(ServletContextEvent event) {// 在这里关闭监听器,所以在这里销毁定时器。  
        timer.cancel();  
        event.getServletContext().log("定时器销毁");  
    }  
  
}  

被调用的GoogleTimer类的写法,注意extends TimerTask,并且在run()方法中执行业务:

import java.util.Calendar;  
import java.util.TimerTask;  
import javax.servlet.ServletContext;  
import cn.edu.KFC.bean.GoogleAnalytics;  
  
  
public class GoogleTimer extends TimerTask{  
    private ServletContext context = null;  
    GoogleAnalytics ga = new GoogleAnalytics();  
    public GoogleTimer(ServletContext context){  
        this.context = context;  
    }  
      
    public void run(){  
        ga.myTest();  
    }  
  
}  

最后,在web.xml中设置监听器

<listener>  
  <listener-class>cn.edu.KFC.bean.GoogleListener</listener-class>  
 </listener> 


相关文章
|
4月前
|
Java 调度
Java实现定时启动,且只执行一次,如何实现?
【10月更文挑战第18天】Java实现定时启动,且只执行一次,如何实现?
430 3
|
17天前
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
52 7
|
1月前
|
Java 开发者 Spring
java springboot监听事件和处理事件
通过上述步骤,开发者可以在Spring Boot项目中轻松实现事件的发布和监听。事件机制不仅解耦了业务逻辑,还提高了系统的可维护性和扩展性。掌握这一技术,可以显著提升开发效率和代码质量。
96 33
|
1月前
|
Java 开发者 Spring
java springboot监听事件和处理事件
通过上述步骤,开发者可以在Spring Boot项目中轻松实现事件的发布和监听。事件机制不仅解耦了业务逻辑,还提高了系统的可维护性和扩展性。掌握这一技术,可以显著提升开发效率和代码质量。
83 13
|
1月前
|
Java Spring
Java Spring Boot监听事件和处理事件
通过上述步骤,我们可以在Java Spring Boot应用中实现事件的发布和监听。事件驱动模型可以帮助我们实现组件间的松耦合,提升系统的可维护性和可扩展性。无论是处理业务逻辑还是系统事件,Spring Boot的事件机制都提供了强大的支持和灵活性。希望本文能为您的开发工作提供实用的指导和帮助。
112 15
|
1月前
|
Kubernetes Java 持续交付
小团队 CI/CD 实践:无需运维,Java Web应用的自动化部署
本文介绍如何使用GitHub Actions和阿里云Kubernetes(ACK)实现Java Web应用的自动化部署。通过CI/CD流程,开发人员无需手动处理复杂的运维任务,从而提高效率并减少错误。文中详细讲解了Docker与Kubernetes的概念,并演示了从创建Kubernetes集群、配置容器镜像服务到设置GitHub仓库Secrets及编写GitHub Actions工作流的具体步骤。最终实现了代码提交后自动构建、推送镜像并部署到Kubernetes集群的功能。整个过程不仅简化了部署流程,还确保了应用在不同环境中的稳定运行。
82 9
|
1月前
|
Java 开发者 Spring
Java Springboot监听事件和处理事件
通过这些内容的详细介绍和实例解析,希望能帮助您深入理解Spring Boot中的事件机制,并在实际开发中灵活应用,提高系统的可维护性和扩展性。
66 7
|
2月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
111 7
Spring Boot 入门:简化 Java Web 开发的强大工具
|
3月前
|
Java Maven Spring
Java Web 应用中,资源文件的位置和加载方式
在Java Web应用中,资源文件如配置文件、静态文件等通常放置在特定目录下,如WEB-INF或classes。通过类加载器或Servlet上下文路径可实现资源的加载与访问。正确管理资源位置与加载方式对应用的稳定性和可维护性至关重要。
92 7
|
3月前
|
存储 安全 搜索推荐
理解Session和Cookie:Java Web开发中的用户状态管理
理解Session和Cookie:Java Web开发中的用户状态管理
119 4

热门文章

最新文章