问题描述:
今天在使用quartz时,因为一个疏忽,错误的将一个job加入了scheduler中.
之后不管怎么改代码都是老的结果,并没有细想原因而是单方面认为是缓存的原因.导致不管是清class文件还是重启都无法解决.直到下班都没有解决.
带着疑惑,想着明天再过来说不定就好了.就在下楼骑上车刚上路没几步时,突然想起来: __ quartz支持使用数据库持久化保存定时任务的状态和信息.__
破案了! 难怪不管怎么清缓存都不会生效,在项目重启时,quartz自己去数据库读取任务执行,当然不会收代码的影响.
这次事件记录在问题发生的晚上.先记录下来明天到公司去验证猜想.
也给了我一些思考:
- 对quartz的持久化没有做出充分全局的认识,以前在做的过程中只是做
代码的搬运工
而没有深入了解到底是为什么. - quartz框架的持久化似乎更新有问题,如果相同id的定时任务,第二次应该更新数据库中的信息才对.而实际并没有更新,这点并没有做出验证,要等到有时间再好好看看.
附上quartz中文文档,今天粗粗的瞄了一眼似乎写的挺全的 : Quartz快速入门指南