错误现象:
在本地开发环境中,应用服务启动后TRIGGER_STATE直接就变为ERROR
前段时间在项目中,使用quartz配置一个定时任务,定时任务都持久化到oracle数据库中,但是应用服务器启动后,数据库qrtz_triggers(trigger信息表)中,对应的任务数据的TRIGGER_STATE字段就直接变为ERROR,导致定时任务不执行。
没有错误log日志,出错原因难定位。
对以下可能出错的原因进行了调查:
1.quartz文件配置错误
① 检查配置文件,调查结果是,配置文件没有发现错误。
② 项目中已经配置有一条定时任务A,但是任务A能正常执行。
③ 将任务A的quartz配置注释,只留下新增配置的定时任务,启动后还是一样报错。
项目中,其他子系统也使用了quartz配置定时任务,可以排除不是quartz配置文件错误。
2.定时任务实现类出错
① 定时任务实现类中,将业务逻辑全部注释,只输出system.out.println,但启动后,也报错。(经过很多次的调试,有时应用服务器启动,也能正常的执行一次新增的定时任务,但后面TRIGGER_STATE就又变为ERROR)
② 将新增的定时任务配置的时间,由2分钟改为10秒后,定时任务能正常运行。
3.发现数据库qrtz_scheduler_s