网站上的专题 怎么设计,网络营销和网上销售的区别,wordpress 地方门户,惠州有哪些做网站的公司问题#xff1a;
最近开了一个新项目#xff0c;spring boot 整合了quartz#xff0c;出现了一个问题#xff0c;就是当项目连接到本地电脑的数据库时#xff0c;一切正常。但是当项目连接远程linux上的数据库的时候#xff0c;发现定时任务不灵了#xff0c;也不是不执…问题
最近开了一个新项目spring boot 整合了quartz出现了一个问题就是当项目连接到本地电脑的数据库时一切正常。但是当项目连接远程linux上的数据库的时候发现定时任务不灵了也不是不执行比如手动执行一次这个操作点一下没反应再点一下却执行两次。
调试
看了下源码整个手动执行一次的逻辑是这样的 1、当页面点执行一次后台qrtz_triggers表会插入一条新记录代表马上要执行了 2、在org.quartz.core.QuartzSchedulerThread#run方法中有个查询triggers的方法 triggers qsRsrcs.getJobStore().acquireNextTriggers… 3、查到trigger后就去执行完了再删掉那条新记录 现在的问题是在第二步查询triggers的时候换成本地数据库就能查出来换成远程数据库就查不出来了也不是一直查不出来连续点两次就能查出来了这个才是最诡异的地方
既然是这个情况首先排除代码问题因为很明显就是因为数据库不一样引起的问题。 一开始还以为是因为本地数据库只有一个服务在连而远程数据库可能有多个同事在用所以会有影响。 但是在更换多个数据库后发现只要是远程数据库都会出现这种诡异现象。
解决
根本问题这个没有解决因为上面是测试环境部署到线上环境的时候这个问题又消失了一切正常。等有时间了还是要看看总感觉没找到问题所在。