开发者社区> 问答> 正文

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帮忙看下,谢谢!

展开
收起
爱吃鱼的程序员 2020-06-09 14:22:21 955 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    是不是表没建对或者编码有问题经验之谈:将两数据库对象结构对比一下 应该会发现问题
    回复<aclass='referer'target='_blank'>@java_龙:直接重新创建了一个库,又好了。。。咨询了下,说是可能因为开发机器连了生产数据库的quartz库,开发机器的时间和生产数据库的时间不一致导致导致的quartz内部的异常,总之现在是恢复正常了回复<aclass='referer'target='_blank'>@慢慢成长:表结构对比mysql,对象结构对比,具体是指什么?

    2020-06-09 14:22:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载