项目场景:
提示:这里简述项目相关背景:
JAVA项目代码几乎没有改动,重新发布后突然报错,无法启动
问题描述
提示:这里描述项目中遇到的问题:
JAVA项目代码几乎没有改动,重新发布后突然报错,无法启动,报错信息如下所示:
原因分析:
提示:这里填写问题的分析:
因为我在项目中 代码几乎没有进行改动 ,但在 重新发布后 后台控制台 突然出现 上述错误, 而且
从报错信息中我们看到,是和定时任务有关,所以我们基本上可以确定,不是 代码导致的原因,其它详细的信息从日志信息中我们无法获取到。
查看定时任务相关数据表:
解决方案:
提示:具体的解决方式:
数据库中产生脏数据,最直接的方法是清空定时任务日志表
需要注意的是,定时任务日志表中存在表格的关联性,故需根据表格的关联前后顺序进行清空或删除表格,否则会提示无法删除或清空数据。
说明:
需删除 qrtz_job_details 表中的数据信息
需要注意的是,如果我们直接 去删除 qrtz_job_details 表中的数据, 是删除不掉的,会有提示信息出现,如下图所示:
所以我们要先了解 定时任务各表之间的联系,其中 qrtz_triggers 表中对 qrtz_job_details 有外键引用, qrtz_cron_triggers 表中 又有对 qrtz_triggers 的外键引用,所以,要按照 表格外键引用的顺序才能删除数据成功,
即 :
先删除 qrtz_cron_triggers 表中的数据, 然后再 删除 qrtz_triggers 表中的数据 ,最后再删除 qrtz_job_details 表中的数据。