> 育儿
java定时任务突然停止怎么办(java定时任务突然停止怎么回事)
导语:java定时任务突然停止
业务场景:
Java定时任务突然停止,不在执行
业务场景:通过定时任务,定时生成数据文件,再SFTP上传到远程服务器上
查找问题原因:
1. 查找定时任务是否启用:数据库记录状态为启用
2. 查找应用日志
正常日志信息:
异常日志信息
缺少上传文件信息。怀疑是当时网络突然不通,经过网络组确认缺失是8号网络出现异常,但是在9号时就没有SFTP上传日志信息了。怀疑定时任务停止,但是是因为什么原因停止的呢 ?
继续查找日志。
查找java堆栈信息jstack
连接远程服务器的信息还在,正常情况下是查询不到该连接信息的。因为连接释放就不会存在该信息。那既然存在该信息就说明上次的定时任务没有执行完成,连接没有释放。那为什么连接没有释放会导致以后的定时没有起作用呢?开始查找代码:原来代码里的定时是单线程的,相当于连接池中只有一个连接,这个线程因为网络原因导致连接没有释放,该连接一直在占用。第二天定时任务再启动时,得不到连接,导致定时任务没有启动。
PS:因为是两台机器做的负载均衡,为了不影响业务及日志查看就重启一台服务器tomcat,保证业务正常。
本文内容由小茹整理编辑!