背景
Java项目,使用quartz定时任务,然后出现一个奇怪问题,就是新增job调度的时候,发现有写定时任务状态直接变成ERROR了,或者跑了一两次后变成ERROR了,当时还在纳闷,怎么会这样,查日志,发现代码没有错误,手动执行都是可以的,然后发现有两个服务在跑同一个数据库
quartz定时任务是配置在数据库的.
然后发现一个服务器是很老版本的代码,导致运行时找不到对应的job类,然后状态直接变成ERROR了.关掉其中比较老旧服务就行了. 或者两个服务代码一致.
解决办法
1.查看当前数据库有哪些服务进程调度
sql命令: show processlist;
他会显示所有访问你指定数据库的进程的
然后找到对应服务器,更新代码或者停掉其中一个服务就行了.