Quartz任务执行一段时间后停止,不再执行


现网有7个定时任务,其中一个定时任务经常会执行一段时间后停止,重启多次依然如此,quartz默认线程数为10,使用了@DisallowConcurrentExecution注解,问题依旧。

经观察,发现出现问题的任务设定的每个小时执行一次,但每次执行时间都很长,一般会有七八个小时,其他正常的任务都在很短的时间内执行完成。怀疑是由于任务执行较长的原因,因此对该任务进行了结构调整

 

解决方案:

在耗时较长的任务调整为异步执行,job中只是组织数据,放入缓存,由另外一条线程从缓存中获取数据进行处理,如果另外一条线程还未处理完上一批次的数据,则下次job任务执行时不再向缓存中添加数据。

 

经过以上处理后,经过观察,在以往两三天就会停止的sas任务,没有再出现过任务不执行的问题。(但具体原因还需要时间查看下quartz底层实现机制)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM