当前位置: 首页 > news >正文

a站在线观看人数在哪商城小程序开发哪家好

a站在线观看人数在哪,商城小程序开发哪家好,网上广告宣传怎么做,百度收录入口在哪里Java-12.Spring 中通过 ThreadPoolTaskExecutor 和 AsyncConfigurerSupport 配置默认异步线程池 前言 在Spring框架中#xff0c;TaskDecorator 是一个接口#xff0c;它可以用来自定义由 ThreadPoolTaskExecutor 或其他任务执行器管理的任务的装饰行为。这通常用于在执行任…Java-12.Spring 中通过 ThreadPoolTaskExecutor 和 AsyncConfigurerSupport 配置默认异步线程池 前言 在Spring框架中TaskDecorator 是一个接口它可以用来自定义由 ThreadPoolTaskExecutor 或其他任务执行器管理的任务的装饰行为。这通常用于在执行任务之前和之后添加某些上下文相关的行为比如设置线程上下文或者清理资源。 例如在执行异步操作时你可能需要将主线程的一些上下文信息比如用户身份验证令牌或请求上下文信息传递给执行异步操作的线程。TaskDecorator 就可以在这种场景下发挥作用。 自定义 TaskDecorator public class ThreadPoolContextTaskDecorator implements TaskDecorator { Override public Runnable decorate(Runnable runnable) { return TtlRunnable.get(ThreadMdcUtil.wrap(runnable, MDC.getCopyOfContextMap())); } }可以继承 AsyncConfigurerSupport 实现默认的异步线程池 EnableAsync SpringBootConfiguration EnableConfigurationProperties(TaskExecutionProperties.class) public class ThreadPoolConfig extends AsyncConfigurerSupport { Resource private TaskExecutionProperties properties; /** * 重写默认线程池配置Async异步会使用这个线程池 */ Override public Executor getAsyncExecutor() { TaskExecutionProperties.Pool pool properties.getPool(); TaskExecutorBuilder builder new TaskExecutorBuilder(); builder builder.queueCapacity(pool.getQueueCapacity()); builder builder.corePoolSize(pool.getCoreSize()); builder builder.maxPoolSize(pool.getMaxSize()); builder builder.allowCoreThreadTimeOut(pool.isAllowCoreThreadTimeout()); builder builder.keepAlive(pool.getKeepAlive()); Shutdown shutdown properties.getShutdown(); builder builder.awaitTermination(shutdown.isAwaitTermination()); builder builder.awaitTerminationPeriod(shutdown.getAwaitTerminationPeriod()); builder builder.threadNamePrefix(properties.getThreadNamePrefix()); builder.taskDecorator(new ThreadPoolContextTaskDecorator()); // 重点是这里ThreadPoolTaskExecutor executor builder.build(); executor.initialize(); return executor; } Override public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() { return new SimpleAsyncUncaughtExceptionHandler(); } }也可以直接定义一个 TaskDecorator Bean 查看源码 TaskExecutionAutoConfiguration ConditionalOnClass(ThreadPoolTaskExecutor.class) AutoConfiguration EnableConfigurationProperties(TaskExecutionProperties.class) public class TaskExecutionAutoConfiguration { /** * Bean name of the application {link TaskExecutor}. */ public static final String APPLICATION_TASK_EXECUTOR_BEAN_NAME applicationTaskExecutor; Bean ConditionalOnMissingBean public TaskExecutorBuilder taskExecutorBuilder(TaskExecutionProperties properties, ObjectProviderTaskExecutorCustomizer taskExecutorCustomizers, ObjectProviderTaskDecorator taskDecorator) { TaskExecutionProperties.Pool pool properties.getPool(); TaskExecutorBuilder builder new TaskExecutorBuilder(); builder builder.queueCapacity(pool.getQueueCapacity()); builder builder.corePoolSize(pool.getCoreSize()); builder builder.maxPoolSize(pool.getMaxSize()); builder builder.allowCoreThreadTimeOut(pool.isAllowCoreThreadTimeout()); builder builder.keepAlive(pool.getKeepAlive()); Shutdown shutdown properties.getShutdown(); builder builder.awaitTermination(shutdown.isAwaitTermination()); builder builder.awaitTerminationPeriod(shutdown.getAwaitTerminationPeriod()); builder builder.threadNamePrefix(properties.getThreadNamePrefix()); builder builder.customizers(taskExecutorCustomizers.orderedStream()::iterator); // spring-boot-autoconfigure 这里提供了 TaskDecorator 的入口// 只需要提供一个 TaskDecorator 的Bean 就可以复用 Spring Boot 中的异步线程池啦builder builder.taskDecorator(taskDecorator.getIfUnique());return builder; } Lazy Bean(name { APPLICATION_TASK_EXECUTOR_BEAN_NAME, AsyncAnnotationBeanPostProcessor.DEFAULT_TASK_EXECUTOR_BEAN_NAME }) ConditionalOnMissingBean(Executor.class) public ThreadPoolTaskExecutor applicationTaskExecutor(TaskExecutorBuilder builder) { return builder.build(); } }
http://www.pierceye.com/news/974997/

相关文章:

  • 网站YYQQ建设o2o型网站
  • 给客户做网站 赚钱吗赣州省住房和城乡建设厅网站
  • 营销优化型网站怎么做手机app网页制作
  • 上海网站建设服wordpress友情链接排序
  • 沈阳市和平区网站建设编程课适合多大孩子学
  • 东阳网站优化懒人图库
  • 马关县网站建设专注营销型网站建设
  • 微信公众号公众平台太原seo关键词优化
  • 沈阳网站建设方案二级网站怎样被百度收录
  • 厦门数字引擎 怎么打不开网站youku网站开发技术
  • 中小企业网站建设论文郑州网站服务公司
  • 工信部网站备案验证码文化传媒网站封面
  • 境外做网站网站百度代运营
  • 南京学校网站建设策划手机网站默认全屏
  • 东莞公司网站策划万网买网站
  • 建筑网站视频大全做外汇网站卖判刑多少年
  • 手机网站菜单网页怎么做东莞网站优化方案
  • 公众号免费素材网站wordpress无法开始安装
  • 建设银行互联网网站首页网站备案 视频
  • 免费优化网站建设做app和网站哪个比较好用
  • 韩国最牛的设计网站大全网站设计的尺寸
  • 一家专门做特卖的网站类似非小号的网站怎么做
  • 怎么建一个网站出口外贸交易平台
  • iapp用网站做软件代码徐州网络推广公司排名
  • 设计之路 网站wordpress自定义字段火车头
  • 用什么服务器做盗版小说网站吗邓州十九张麻将微信群app开发公司
  • 高端网站设计找哪个公司WordPress 移动文件夹
  • 做网站的资料新媒体网站建设十大的经典成功案例
  • 西安移动网站建设丹东做网站的
  • 石家庄网站建设优化建湖做网站哪家最好