使用model.find查询数据库,放在quartz定时任务中,会出现 datasource already closed


使用model.find查询数据库,放在quartz定时任务中,会出现 datasource already close

这个要怎么解决呢

评论区

JFinal

2017-08-11 15:58

是否在调用 quartz 的线程中开启了事务,如果开启了事务,那么当前线程会绑定一个 Connection 对象,并且一直是开着的

caoyaxin

2017-08-11 16:15

@JFinal 没开什么事务啊 就是直接调用的model dao里面的方法 没有做任何事务的配置

JFinal

2017-08-11 16:17

@caoyaxin 单步调试跟踪到 Config.getConnection() 中去,看是不是从 ThreadLocal 这个对象中获取的 connection,然后跟踪到 Config.close(connection) 中去,看 conection 是否被关闭了

定时任务确实容易出现你碰到的这个问题

caoyaxin

2017-08-11 16:27

@JFinal 都是按照这个流程执行的 每次都能正常关闭 connection 感谢波总 定时任务的这个问题 不影响大局 就行

caoyaxin

2017-08-11 16:28

@JFinal 建议 波总给反馈模块加个搜索功能啊

JFinal

2017-08-11 16:46

@caoyaxin 一直没顾上呢,暂时的觖办法见这里:
http://www.jfinal.com/feedback/1654

热门反馈

扫码入社