【咨询】定时任务内Db报空

我在afterJfinalStart方法内加载定时任务:

image.png

会报:

java.lang.NullPointerException

        at com.jfinal.plugin.activerecord.Db.find(Db.java:279)

image.png

这个问题有什么思路处理嘛?谢谢

评论区

JFinal

2020-07-23 16:06

在 configPlugin 中要添加 ActiveRecordPlugin , 让其先被启动才可以

2020-07-23 16:22

@JFinal 我在configPlugin 中是有ActiveRecordPlugin 的了,在加载定时任务之前也在数据库查询了很多数据了

2020-07-23 16:37

@JFinal 我测试了好几次,好像并不是每一次都会报空~~~

2020-07-23 19:03

@JFinal 好像在tomcat热加载之后,定时器里面访问数据,Db类里面的DbPro是空的,像这样有什么方式可以处理么 谢谢

JFinal

2020-07-23 20:24

@谢 应变是你的定时任务启动比 ActiveRecordPlugin 要早,而线程调度的时间不是严格确定的,所以时好时坏

解决办法是在 configPlugin 中先添加 ActiveRecordPlugin,再添加 Cron4jPlugin:
configPlugin(Plugins me) {
me.add(arp);
me.add(cron4jPlugin);
}

2020-07-24 10:10

@JFinal 明白了,那我自己写个Plugin来处理....