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

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

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

 

解决方案:

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

 

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

 

posted @ 2021-08-26 10:08  大坑水滴  阅读(5231)  评论(0编辑  收藏  举报