Web进程被kill掉后线程还在运行怎么办?
生活随笔
收集整理的這篇文章主要介紹了
Web进程被kill掉后线程还在运行怎么办?
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
目錄
- 背景描述
- 原因分析
- 處理方案
- 參考
背景描述
系統(tǒng)有一個配置表,系統(tǒng)在啟動后會啟動一個線程,每隔5分鐘將配置表里所有的數(shù)據(jù)更新到內(nèi)存中。
系統(tǒng)是通過jenkins構(gòu)建(直接kill掉Web進程,然后傳入新的包再啟動)的,每次在jenkins在構(gòu)建系統(tǒng)后的5分鐘內(nèi),系統(tǒng)都會報一次錯:
原因分析
基于每次通過jenkins構(gòu)建后系統(tǒng)只報一次異常和具體的堆棧信息,判斷是更新配置信息到內(nèi)存的線程沒有在kill掉Web進程的時候停掉。
處理方案
1)使用Java EE5中的注解@PreDestroy;嘗試過,沒成功
2)使用Spring中的DisposableBean或配置destroy-method。(類實現(xiàn) DisposableBean 接口,在 destroy() 方法中實現(xiàn)資源釋放)使用該方式成功
參考
Tomcat熱部署,Web工程中線程沒有終止(https://www.cnblogs.com/shuimuzhushui/p/8490619.html)
轉(zhuǎn)載于:https://www.cnblogs.com/wsygdb/p/10951351.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的Web进程被kill掉后线程还在运行怎么办?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 进口食品备案需要什么资料?
- 下一篇: jquery的懒加载记录一下踩得坑