问题:
本地自测定时任务时发现tomcat关闭项目,并没有关闭线程,定时任务依然在运行,想到正式站项目里也有类似定时任务,做了下检查。
项目服务器端是java搞的,tomcat下除了正常项目之外,另有一个小项目做定时任务,用来更新数据统计,可以放在凌晨用户较少时运行。加上日志后发现tomcat已经undeploy的项目,这些项目遗留的定时线程仍然在运行,占用内存。
原理:
这篇文章写得挺易懂的,传送门:http://blog.sina.com.cn/s/blog_145f07e7b0102x3dy.html
解决:
1.在关闭项目时,关闭线程;
2.重启tomcat来关闭JVM守护线程。