卸载项目,定时任务线程线程未被关闭

问题:

本地自测定时任务时发现tomcat关闭项目,并没有关闭线程,定时任务依然在运行,想到正式站项目里也有类似定时任务,做了下检查。

项目服务器端是java搞的,tomcat下除了正常项目之外,另有一个小项目做定时任务,用来更新数据统计,可以放在凌晨用户较少时运行。加上日志后发现tomcat已经undeploy的项目,这些项目遗留的定时线程仍然在运行,占用内存。

卸载项目,定时任务线程线程未被关闭_第1张图片
代码里加上日志,打印项目关闭后遗留线程

原理:

这篇文章写得挺易懂的,传送门:http://blog.sina.com.cn/s/blog_145f07e7b0102x3dy.html

解决:

1.在关闭项目时,关闭线程;

卸载项目,定时任务线程线程未被关闭_第2张图片
在destroy()方法里调用shutdown()
卸载项目,定时任务线程线程未被关闭_第3张图片

2.重启tomcat来关闭JVM守护线程。

你可能感兴趣的:(卸载项目,定时任务线程线程未被关闭)