quartz持久化job trigger无法正常触发的异象
这两天遇到个非常怪异的现象,quartz做了分布式持久化,triggerstate在刚要到触发时间点之前就被quartz自行把状态修改为ERROR,导致trigger无法正常触发,quartz的数据库连接测试数据库时,正常,连接生产环境数据库时,异常;
关键信息如下:
1、quartz 版本 1.8.6
2、quartz持久化数据库,测试库A,生产库B,均按照quartz提供的脚本创建的相关表
主要现象:
1、测试环境正常现象:triggerstate 会在该trigger将要到下次触发时间之前把值修改为 ACQUIRED,然后到触发时间点,job正常触发,随后又将该状态修改为 WAITING,表现均正常
2、生成环境异常现象:triggerstate 会在该trigger将要到下次触发时间之前把值修改为 ACQUIRED,然后直接将该值又修改为 ERROR,这样就算到了触发时间点,job也不会执行(根本没触发),该状态就一直为ERROR,且未打印任何异常、报错日志
3、两个环境都使用同一份代码,只是数据库连接指向有区别
主要就是上述现象,折腾了几天了,也未找到原因,所以一直没解决,还请有处理过相关问题的OSCER帮忙看下,谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
mysql,对象结构对比,具体是指什么?
回复
表结构对比
回复
直接重新创建了一个库,又好了。。。咨询了下,说是可能因为 开发机器 连了 生产数据库的quartz库,开发机器的时间和生产数据库的时间不一致导致导致的quartz内部的异常,总之现在是恢复正常了
经验之谈: 将两数据库 对象结构对比一下 应该会发现问题
是不是表没建对或者编码有问题