为什么80%的码农都做不了架构师?>>>   

有些时候我们需要在TOMCAT关闭的时候做一些收尾的工作,比如保存未完成的任务队列到文本或数据库等,或者在JVM退出之前做一些
收尾的事情,这个时候就可以注册JVM的HOOK,它会在JVM的最后一个非后台线程退出的时候执行。
package example;import java.util.concurrent.TimeUnit;
import java.util.logging.Logger;import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;public class RuntimeListener implements ServletContextListener {private static final Logger log = Logger.getLogger(RuntimeListener.class.getName());public void contextInitialized(ServletContextEvent arg0) {log.info("contextInitialized");/** 注册JVM钩子,在JVM关闭之前做一些收尾的工作,当然也能阻止TOMCAT的关闭;必须放在contextInitialized中注册。*/Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {public void run() {int n = 0;while (n < 10) {log.info(Thread.currentThread() + "," + n++);try {TimeUnit.SECONDS.sleep(1);} catch (InterruptedException e) {e.printStackTrace();}}}}));}public void contextDestroyed(ServletContextEvent arg0) {log.info("contextDestroyed ....");}}

转载于:https://my.oschina.net/myshop/blog/61681

TOMCAT/JVM关闭时候的收尾(HOOK)相关推荐

  1. tomcat 正常关闭_Tomcat的带有守护程序和关闭钩子的正常关闭

    tomcat 正常关闭 我的最后两个博客讨论了长时间轮询和Spring的DeferredResult技术,并且为了展示这些概念,我将我的Producer Consumer项目中的代码添加到了Web应用 ...

  2. nodemanager不能正常关闭_Java虚拟机关闭钩子(Shutdown hook)

    作者:俩右 出处:https://segmentfault.com/a/1190000038298447 源码点击 study:https://github.com/xiaoshuanglee/stu ...

  3. Java中的JVM关闭钩子

    java面试题网站:www.javaoffers.com Java中的JVM关闭钩子 (翻译篇)关机钩子 也叫 关闭钩子 关机钩子是一种特殊的构造,允许开发人员插入一段代码,以便在JVM关闭时执行.当 ...

  4. “金三银四”春招指南之“性能调优”:MySQL+Tomcat+JVM,看完还怕面试官的轰炸?

    春招指南之"性能调优":MySQL+Tomcat+JVM,还怕面试官的轰炸? 01 MySQL性能调优 1.1 MySQL性能调优问题有哪些?怎么学? 关于这个,给大家看一份学习大 ...

  5. Tomcat 优雅关闭之路

    本文首发于 vivo互联网技术 微信公众号  链接:https://mp.weixin.qq.com/s/ZqkmoAR4JEYr0x0Suoq7QQ 作者:马运杰 本文通过阅读Tomcat启动和关闭 ...

  6. 深入JVM关闭与关闭钩子

    1. 简述JVM关闭 通常而言,对于JVM的关闭我们很少去关注,但是了解JVM的关闭能帮我们在JVM关闭时做一些合理的事情.首先JVM的关闭方式可以分为三种: 正常关闭:当最后一个非守护线程结束或者调 ...

  7. linux查看tomcat启动内存溢出,关于tomcat乱码以及tomcat jvm 内存溢出问题的解决方案和理论-Fun言...

    一:乱码问题1(前端通过url方式传递中文参数后台收到的是????) 此为Tomcat根目录-conif-server.xml 中 connectionTimeout="20000″ red ...

  8. Tomcat 异常关闭排查

    Tomcat 异常关闭排查 参考文章: (1)Tomcat 异常关闭排查 (2)https://www.cnblogs.com/eason-d/p/9262716.html 备忘一下.

  9. Spring的Tomcat服务关闭后,Quartz进程无法正常关闭,出现内存泄露

    简介 spring内部整合quartz,将quartz整合到web项目里面,通过页面动态控制quartz的增加.修改.删除.查询,这种方式极大简化了对quartz定时器任务的控制: 但随之而来的是一个 ...

最新文章

  1. matlab有限域多项式除法_椭圆曲线密码学简介(二):有限域的椭圆曲线及离散对数问题...
  2. 自己搭建自动化巡检系统(五) 抖动告警
  3. python中删除对象方法的区别_python中delattr删除对象方法的代码分析
  4. 定时器精度问题及影响
  5. 初试Node —— node.js的安装
  6. 关于CCSpriteSheet报错问题
  7. jax-ws开发的webservice集成到web项目中
  8. 像素测量工具_结构光视觉传感器的标定方式和测量原理
  9. crossdomain.xml跨越
  10. 阶段3 3.SpringMVC·_07.SSM整合案例_06.ssm整合之编写MyBatis框架
  11. c语言不合法字符串常量,不合法的字符常量是什么
  12. html制作日程安排,如何制作一个Web日程安排表?
  13. 手机处理器排名2019_2019手机处理器性能排行,第一实至名归,第二太冷门
  14. storyBoard配置错误导致崩溃 superview]: unrecognized selector...
  15. 计算机常用的颜色模式有,ps的颜色模式有哪些
  16. 计算机网络协议(三)——UDP、TCP、Socket
  17. 【Matlab】基于皮肤概率建模的人脸检测算法雏形
  18. 京东2019年春招题(前端)
  19. 增量备份、差异备份、增量备份的区别?
  20. gaitset全代码实现问题总结

热门文章

  1. python交换两列的位置_如何更改 pandas dataframe 中两列的位置
  2. 荣耀x10max鸿蒙,黄石收购荣耀X10Max指纹键电池背光喇叭
  3. android 判断滑动方向,H5触摸事件判断滑动方向
  4. python的模块文档_python查看模块文档
  5. led16*16点阵实验c语言,基于单片机的64*16LED点阵电子显示屏设计 pcb图+原理图+源程序...
  6. jwt token注销_辩证的眼光搞懂 JWT 这个知识点
  7. 通过机器学习识别“迪士尼在逃公主”,程序员宠女的正确打开方式!
  8. Asp.Net就业课之案例实践第二次课
  9. web压测工具http_load原理分析
  10. ssldump编译及使用过程