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

Spring Boot项目中TaskDecorator的应用实践

一、前言

TaskDecorator是一个执行回调方法的装饰器,主要应用于传递上下文,或者提供任务的监控/统计信息,可以用于处理子线程与主线程间数据传递的问题。

二、开发示例

1.自定义TaskDecorator

import org.springframework.core.task.TaskDecorator;public class MyTaskDecorator implements TaskDecorator {@Overridepublic Runnable decorate(Runnable runnable) {return ()->{System.out.println("线程执行前,资源设置。。。。");runnable.run();System.out.println("线程执行后,资源清理。。。。");};}
}

2. 自定义线程池,设置TaskDecorator

ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setTaskDecorator(new MyTaskDecorator());
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
executor.setWaitForTasksToCompleteOnShutdown(true);
executor.initialize();executor.execute(()->{System.out.println("我是一个测试线程。。。");
});executor.shutdown();

3. 测试

在这里插入图片描述

相关文章:

  • 第六十四天 服务攻防-框架安全CVE复现Apache shiroApache Solr
  • 如何使用Coded UI Test对Webpage进行自动化测试
  • FlashMeeting(基于FFmpeg+openCV)视频语音通讯系统
  • Java 爬虫 jvppeteer
  • 美易平台:全球金融市场一周前瞻G20会议至美联储纪要,关键事件点评
  • 【研究生复试】计算机软件工程人工智能研究生复试——资料整理(速记版)——自我介绍(英文)
  • .net 微服务 服务保护 自动重试 Polly
  • Java 面向对象进阶 10 多态中调用成员的特点(黑马)
  • 代码随想录刷题第38天
  • Docker中如何删除某个镜像
  • 【微服务生态】Docker
  • 洛谷 P3879 阅读理解
  • 重学Java 18.学生管理系统项目
  • Windows 获取内存 API 汇总及使用方法
  • Python编程技巧 – 装饰器
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 4个实用的微服务测试策略
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • CentOS6 编译安装 redis-3.2.3
  • co.js - 让异步代码同步化
  • CSS 三角实现
  • JavaScript的使用你知道几种?(上)
  • Redis字符串类型内部编码剖析
  • scrapy学习之路4(itemloder的使用)
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 第十八天-企业应用架构模式-基本模式
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 基于遗传算法的优化问题求解
  • 那些年我们用过的显示性能指标
  • 赢得Docker挑战最佳实践
  • puppet连载22:define用法
  • 如何在招聘中考核.NET架构师
  • #ifdef 的技巧用法
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (独孤九剑)--文件系统
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (排序详解之 堆排序)
  • (四)汇编语言——简单程序
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .NET 中的轻量级线程安全
  • .NET简谈设计模式之(单件模式)
  • .Net中的集合
  • .NET中两种OCR方式对比
  • @Autowired @Resource @Qualifier的区别
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)
  • [2023年]-hadoop面试真题(一)
  • [AIGC] Nacos:一个简单 yet powerful 的配置中心和服务注册中心
  • [BUUCTF]-PWN:wustctf2020_number_game解析(补码,整数漏洞)
  • [BZOJ1060][ZJOI2007]时态同步 树形dp
  • [bzoj2957]楼房重建