问题发生:tomcat运行着的后台有3个spring定时任务,每天凌晨都会跑,突然有一天停了,再也不跑了;排查日志发现在出问题的那一天凌晨,第一个任务执行完成之后,到了第二个时间点,开始执行后,报了一个 http请求头解析异常的 错误,我在程序中的catch没有捕获到,(我捕获的是Exception.class都没有捕获到),框架底层也没有catch到,不知道为啥,之后线程就死了,然后从此之后3个定时任务都不在跑了;

问题排查:网上查了一下,发现spring Schedule的定时任务虽然采用了 线程池,但是默认只设置了一个线程,也就是说,默认是单线程执行任务的,所以当时我的那个任务发生严重异常导致线程死亡,之后线程池没有可以执行任务的线程,所以之后的定时任务都被阻塞了没法执行

问题解决:1,配置spring Schedule为多线程,设置线程池的线程数为6,保证一个任务失败,不影响其他任务的执行;2,所有定时任务增加手动调用接口,确保任务失败,能手动执行;

个定时任务都不在跑了; [Gè dìngshí rènwù dōu bùzài pǎole;]   In timed tasks are run;  

更多推荐

Spring Schedule定时任务突然崩掉不运行踩坑解决记录