jfinal 系统启动后,定时任务获取查询任务,Db找不到

问题大致是这样:系统启动后,首先第一次数据库查询所有job任务进行加载,这个时候Db是有的,接下来定时任务开始执行,执行逻辑是要有查询数据库记录,这时候查询就会报Db不存在了,很奇怪。。。。

评论区

JFinal

2019-05-08 11:11

单步调试找原因

Db 不存在这个异常并不存在,jfinal 内部从来没报过这个异常

杜福忠

2019-05-08 12:02

job任务代码 不在一个classLoader系列?

小马奔腾

2019-05-08 14:29

@JFinal 单步调试下来,我项目有先加载mysql数据源插件,然后加载quartz数据源插件,然后是加载quartz插件(就是这边有个业务逻辑,先查询mysql库中的所有定时记录,也是存在这个db对象的,然后调用quartz中的scheduler中的start()方法开始启动定时,后面定时任务到来时,需要获取mysql库的信息,这时候发现Db中的map对象是空的,我不知道具体是哪里将这个map变空了。。。)

JFinal

2019-05-08 14:30

@小马奔腾 这里注意一个先后问题, ActiveRecordPlugin 插件要放在最前面初始化,否则后面的无法加载

或者你手动 arp.start() 一下,并去除:
me.add(arp);

小马奔腾

2019-05-08 14:33

@杜福忠 是在一个classLoader下的

小马奔腾

2019-05-08 15:23

@JFinal 我手动调用quartz插件直接第一次查询就报db不存在,我第一先加载的mysql,然后是quartz库,然后是加载quartz插件,你看我截图,第一次加载查询任务是有的 ,第二次定时来的时候就没有了 (报:Config not found by configName: ccDb) 这个ccDb,第一次查询在map中是有的,也查询出数据的

小马奔腾

2019-05-08 15:26

@JFinal 系统只要不执行定时任务逻辑就不会出问题,因为后面我正常访问mysql和quartz库 都是正常能得出数据的

热门反馈

扫码入社