TOMCAT/JVM关闭时候的收尾(HOOK)
生活随笔
收集整理的這篇文章主要介紹了
TOMCAT/JVM关闭时候的收尾(HOOK)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
有些時(shí)候我們需要在TOMCAT關(guān)閉的時(shí)候做一些收尾的工作,比如保存未完成的任務(wù)隊(duì)列到文本或數(shù)據(jù)庫(kù)等,或者在JVM退出之前做一些 收尾的事情,這個(gè)時(shí)候就可以注冊(cè)JVM的HOOK,它會(huì)在JVM的最后一個(gè)非后臺(tái)線程退出的時(shí)候執(zhí)行。 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");/** 注冊(cè)JVM鉤子,在JVM關(guān)閉之前做一些收尾的工作,當(dāng)然也能阻止TOMCAT的關(guān)閉;必須放在contextInitialized中注冊(cè)。*/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 ....");}}
轉(zhuǎn)載于:https://my.oschina.net/myshop/blog/61681
總結(jié)
以上是生活随笔為你收集整理的TOMCAT/JVM关闭时候的收尾(HOOK)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Hadoop配置机架感知(python脚
- 下一篇: Nginx配置参数说明