quartz trigger的status变成error的问题
项目中用到了quartz,然后在使用的时候发现定时会失效,检查数据库里quartz的表发现触发器的状态都变成了error。
发现是项目的迭代更改了代码,使得quartz的触发器失效,这样的问题发生了两次:
1:在quartz的trigger表的字段里包含job的class名,触发器的组名,任务名等等。同事修改了代码之后直接改了quartz库里的字段,但是quartz表中还包括了一个blob字段以二进制方式用来储存所有的信息。在校验的时候,只改了显示的字段没有更改这个字段,就导致了错误的发生。
2:因为项目需要迭代,然后又已经在使用了,在项目代码发生改变的时候(扩充了job的类型,实现方式,扩充了组名,识别符等等),没有去取消原本的定时任务,导致quartz在运行定时任务的时候校验失败,