背景
业务需要跑定时任务,服务又可能重启,所以重写了run方法跑定时任务,之前一直是正常运行的,后来突然就发现启动程序后无报错信息,端口正常打开,但程序无法访问,发请求进不到controller的debug里
原因
这个Bugs是由定时任务引发的,由于前段回传的cron表达式有一条有问题(之前都正常),在执行run方法时,程序报错,这里没有写try、catch导致报错无法解决,一级一级throw给了main方法,main方法调用了spring的框架中的报错,引发context.close()
导致程序宕掉,但现在看起来程序还是正常在跑的。
解决方法
try catch 覆盖执行的定时任务,此时如果报错出现异常会被捕获处理,而不会将异常抛至spring,造成spring启动失败。