码迷,mamicode.com
首页 > 其他好文 > 详细

XXLJOB终止定时任务的犯二小故事

时间:2020-05-20 18:54:57      阅读:354      评论:0      收藏:0      [点我收藏+]

标签:int   线程   OLE   lex   实现   任务   定时任务   cut   nbsp   

xxljob中终止定时任务的方式是通过Thread.interrupt()+处理中断异常的方式强制终止任务的。所以单纯的线程只要进行阻塞操作就可以实现终止。

但是代码里已经遍布了ThreadPoolExecutor创建出来的线程池,尝试各种方式线程内部都不能感受到外部线程的interrupt,尝试了多次无果。

 

今天忽然想明白了,在外部线程中等待线程池执行完成的地方,处理线程的终止异常,抛出异常给xxljob进行捕获同时,调用线程池的shutdownNow()方法即可。

由于shutdownNow()的实现方式实际还是Thread.interrupt(),所以只要线程内部在合适的地方加上Thread.sleep(x)即可。

 

XXLJOB终止定时任务的犯二小故事

标签:int   线程   OLE   lex   实现   任务   定时任务   cut   nbsp   

原文地址:https://www.cnblogs.com/windghost/p/12925070.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!