TOMCAT/JVM关闭时候的收尾(HOOK)
生活随笔
收集整理的這篇文章主要介紹了
TOMCAT/JVM关闭时候的收尾(HOOK)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么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)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hadoop配置机架感知(python脚
- 下一篇: Nginx配置参数说明