通过跟踪源代码发现868行,发现洳果trigger的jokeKey和job的Key不一样就会提示这个错误!
周日公司CTO给我打电话说,监控系统的数据从下午1点就不更新了我登录服务器排除了数据同步问题,查看日志也没有例外抛出查询了前一天的
日志发现几个数据库表涳间溢出例外。最后定位Spring定时任务挂掉了。重启应用恢复正常周一早上,同样的问题又发生了6点开始定时任务又停了。
Spring定时任务为什么会被阻塞呢
周一中午,我在进行接口状态监控测试时发现接口状态查询任务尽然会执行半小时。问题找到了由于我在接口状态查询任务中没有设置读超时、在接口
网络繁忙时,接口状态查询任务会占用很长的时间Spring定时任务默认都是并发执行的,不会等待上一次任务执行完毕只要间隔时间到就会执行。接口状
态查询任务每5分钟执行一次假如每次都执行1小时的话,其他任务就会被阻塞因为Quartz的線程都被接口状态查询任务占用了。其他任务只有等待
2.任务执行时间较长时,查找根本问题
(JobOne并发执行,到这里所有任务阻塞没有信息输出可以看出默认有10个线程,都被JobOne占用)
(JobOne不并发执行JobTwo不会被阻塞)