博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
聊聊TaskExecutor的spring托管
阅读量:5998 次
发布时间:2019-06-20

本文共 1529 字,大约阅读时间需要 5 分钟。

本文主要简述下如何设置TaskExecutor的Thread.UncaughtExceptionHandler。

实例

@Bean    protected ThreadPoolTaskScheduler taskExecutor() {        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();        executor.setCorePoolSize(10);        executor.setMaxPoolSize(50);        executor.setQueueCapacity(100);        executor.setThreadNamePrefix("demo-");        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());        executor.setWaitForTasksToCompleteOnShutdown(true);        executor.initialize();        return executor;    }复制代码

使用spring托管TaskExecutor的好处就是可以在spring容器启动或销毁的时候做些准备或清理动作。分别可以用initMethod及destroyMethod来指定。

destroyMethod默认寻找public的命名为close或者shutdown的无参方法,这里没有配置,默认调用的是ThreadPoolTaskScheduler的shutdown方法。

配置Thread.UncaughtExceptionHandler

spring默认会给async的线程池配SimpleAsyncUncaughtExceptionHandler,具体见spring-context-4.3.9.RELEASE-sources.jar!/org/springframework/scheduling/annotation/AsyncAnnotationAdvisor.java

不过自己配置的taskExecutor就没有这个福利了,需要自己配置,如下:

final Thread.UncaughtExceptionHandler uncaughtExceptionHandler = new Thread.UncaughtExceptionHandler() {            @Override            public void uncaughtException(Thread t, Throwable e) {            //do what you want            }        };        ThreadFactoryBuilder threadFactoryBuilder = new ThreadFactoryBuilder();        threadFactoryBuilder.setNameFormat("demo-%d");        threadFactoryBuilder.setUncaughtExceptionHandler(uncaughtExceptionHandler);        executor.setThreadFactory(threadFactoryBuilder.build());复制代码

这样就大功告成了

转载地址:http://sozmx.baihongyu.com/

你可能感兴趣的文章
【经验分享】卡方检验实战--检验次日留存率与用户分类的独立性
查看>>
为什么我还不推荐内存中OLTP给用户
查看>>
如何将字符串或者数字转换成大写货币
查看>>
WPF 使用Code创建Canvas,StackPanel,DockPanel。Grid,Border,UniformGrid,ViewBox,WrapPanel等...
查看>>
程序员的5种类型
查看>>
[GO编程]GO编程环境
查看>>
node.js module初步理解
查看>>
我所了解的各公司使用的 Ceph 存储集群 (携程、乐视、有云、宝德云、联通等)...
查看>>
前人挖坑,后人填坑
查看>>
Cloudera Manager安装之Cloudera Manager安装前准备(Ubuntu14.04)(一)
查看>>
对Linux的引导扇区的认识
查看>>
《101 Windows Phone 7 Apps》读书笔记-NOTEPAD
查看>>
魔哥圆角--特点(代码精简,完全自适应)
查看>>
MapGuide Enterprise 2010 Update 2 has been released
查看>>
客人发帖:添加一个日历到您的Xamarin.Forms应用程序与Telerik日历
查看>>
Gzip压缩
查看>>
struts2配置i18n设置,点击链接生成国际化文本
查看>>
web-yestem(伊莱博)-票据管理(ver-1.0)-数据库设计
查看>>
[异常解决] ubuntu上安采用sudo启动的firefox,ibus输入法失效问题解决
查看>>
深入理解MySQL 5.7 GTID系列(二):GTID相关内部数据结构
查看>>