成功解决@Async注解不生效的问题,异步任务处理问题

 首先,有这样一个异步监听方法

然后配置好了异步线程池 

package com.fdw.study.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.ThreadPoolExecutor;@ComponentScan(basePackages = {"com.fdw.study.event", "com.fdw.study.eventListener"})
@Configuration
public class EventConfig {//自定义线程池@Beanpublic ThreadPoolTaskExecutor asyncThreadPoolExecutor() {ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();// 核心线程数taskExecutor.setCorePoolSize(4);// 线程池维护线程的最大数量,只有在缓冲队列满了之后才会申请超过核心线程数的线程taskExecutor.setMaxPoolSize(20);// 缓存队列taskExecutor.setQueueCapacity(50);// 空闲时间,当超过了核心线程数之外的线程在空闲时间到达之后会被销毁taskExecutor.setKeepAliveSeconds(200);// 异步方法内部线程名称taskExecutor.setThreadNamePrefix("fdw-async-executor-");/*** 当线程池的任务缓存队列已满并且线程池中的线程数目达到maximumPoolSize,如果还有任务到来就会采取任务拒绝策略* 通常有以下四种策略:* ThreadPoolExecutor.AbortPolicy:丢弃任务,抛出RejectedExecutionException异常。* ThreadPoolExecutor.DiscardPolicy:丢弃任务,但不抛出异常。* ThreadPoolExecutor.DiscardOldestPolicy:丢弃队列最前面的任务,然后重新尝试重新执行任务。* ThreadPoolExecutor.CallerRunsPolicy:重试添加当前的任务,自动重复调用 execute() 方法,直到成功。*/taskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());taskExecutor.initialize();return taskExecutor;}}

执行测试

package com.fdw.study.test;import com.fdw.study.config.EventConfig;
import com.fdw.study.event.UserChangePasswordEvent;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class EventTest {public static void main(String[] args) {ApplicationContext context = new AnnotationConfigApplicationContext(EventConfig.class);context.publishEvent(new UserChangePasswordEvent("145623"));}
}

 发现还是走的main线程,没有实现异步

原因:后来发现是配置类缺少了@EnableAsync注解,加上后再测试

现在才是真的异步

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/152279.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习笔记 - 两个静态手势识别的简单示例

一、关于手势识别 手势识别方法通常分为两类:静态或动态。 静态手势是那些只需要在分类器的输入处处理单个图像的手势,这种方法的优点是计算成本较低。动态手势需要处理图像序列和更复杂的手势识别方法。 进一步了解可以参考下面链接。 静态手势识别和动态手势识别的区别和技…

【ARM CoreLink 系列 5 -- CI-700 控制器介绍 】

文章目录 1.1 什么是 CI-700?1.1.1 关于 CI-7001.1.2 CI-700 特点1.2 全局配置参数1.2.1 寻址能力1.3 组件和配置1.3.1 CI-700 互联的结构1.3.2 Crosspoint(XP)1.3.3 外部接口1.4 组件(Components)1.4.1 RN-I & RN-D1.4.2 HN-F(Fully coherent Home Node)1.4.3 SBSX(AM…

Redis作为缓存,mysql的数据如何与redis进行同步?

Redis作为缓存,mysql的数据如何与redis进行同步? 一定要设置前提,先介绍业务背景 延时双删 双写一致性:当修改了数据库的数据也要同时更新缓存的数据,缓存和数据库的数据要保持一致 读操作:缓存命中,直接返回;缓存未…

招投标系统简介 企业电子招投标采购系统源码之电子招投标系统 —降低企业采购成本

功能描述 1、门户管理:所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含:招标公告、非招标公告、系统通知、政策法规。 2、立项管理:企业用户可对需要采购的项目进行立项申请,并提交审批,查看所…

electron之进程间通信

Electron进程间通信 使用electron编写程序时经常遇到下面这种场景: 当用户点击一个按钮时,需要将页面输入的信息保存到本地电脑上; 或者是点击菜单时,需要页面窗口做出响应。 用户点击的按钮和窗口展示的内容是运行在渲染进程中&…

超好用的IDEA插件推荐!

大家好,Apipost 最新推出IDEA插件V2版本!V2版本主要是Apipost 符合更多用户的需求而推出,支持在插件中获取 token、支持代码完成后在插件中进行 API调试 ,同时也保留了1.0版本部分功能如上传选择目录功能等。 V1版本还会继续保留…

湖南互联网医院|湖南互联网医院牌照办理流程及材料

互联网医牌照,一个让医疗行业焕发数字化新生的通行证。随着时代的进步和技术的发展,互联网已经深入各个行业,医疗领域也不例外。而互联网医牌照的办理流程、内容以及所需材料,则是诸多医疗机构所关注的核心内容。 第一种是实体医…

nssm nginx window 部署和开机启动服务

部署 去到Nginx官网:nginx news ,然后点击“download” 在nginx的配置文件是conf目录下的nginx.conf nginx.exe http://localhost 在cmd命令窗口里面输入nginx命令(快速停止nginx) : nginx -s stop 或者使用(完整有序的停止nginx)命…

语义分割笔记(三):通过opencv对mask图片来画分割对象的外接椭圆

文章目录 mask图像介绍步骤代码 mask图像介绍 根据 mask 图像来画分割对象的外接椭圆是一种常见的图像分割任务。Mask 图像通常是一个二值图像,其中包含了感兴趣对象的像素。通常情况下,白色像素表示对象,黑色像素表示背景。 步骤 以下是一…

【uniapp】自定义导航栏时,设置安全距离,适配不同机型

1、在pages.json中,给对应的页面设置自定义导航栏样式 {"path": "pages/index/index","style": {"navigationStyle": "custom","navigationBarTextStyle": "white","navigationBarTitl…

【已解决】Operation timed out 问题

概述 今天遇到了这样一个有点奇葩的问题,再阿里云服务器上部署了Mysql服务,再使用NaviCat的过程中链接不上,connect to address IP地址: Operation timed out,最后是服务器防火墙的问题。 查看Mysql服务/端口 1.查看Mysql是否启…

【linux进程(三)】进程有哪些状态?--Linux下常见的三种进程状态

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:Linux从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学更多操作系统知识   🔝🔝 Linux进程 1. 前言2. 操作系统…

Excel·VBA使用ADO读取工作簿工作表数据

目录 查询遍历写入数组查询整体写入数组查询工作簿所有工作表名称查询工作簿所有工作表数据 不打开工作簿读取数据,以下举例都为《ExcelVBA合并工作簿》中 7,合并子文件夹同名工作簿中同名工作表,纵向汇总数据所举例的工作簿,使用…

如何防止重复提交订单?

重复提交原因 其实原因无外乎两种: 一种是由于用户在短时间内多次点击下单按钮,或浏览器刷新按钮导致。 另一种则是由于Nginx或类似于SpringCloud Gateway的网关层,进行超时重试造成的。 常见解决方案 方案一:提交订单按钮置灰 …

DiffusionDet:第一个用于物体检测的扩散模型(DiffusionDet: Diffusion Model for Object Detection)

提出了一种新的框架——DiffusionDet,它将目标检测定义为一个从有噪声的盒子到目标盒子的去噪扩散过程。在训练阶段,目标盒从真实值盒扩散到随机分布,模型学会了逆转这个噪声过程。 在推理中,该模型以渐进的方式将一组随机生成的框…

day30

今日内容概要 继承(面向对象中得核心) 单继承 多继承 单继承下的属性查找 多继承下的属性查找 super和mro的使用 多态和鸭子类型 继承(核心) 面向对象的三大特征:封装、继承、多态 1.什么是继承 继承就是一种新建类的方式&#xff0…

仅个人记录:复现dotspatialdemo、打包、

复现dotspatialdemo 原始文件 一、新建项目、工具箱设置,项目引用等看上一篇 二、根据Form1.Designer.cs设计界面Form1.cs[设计] SplitContainer控件:将容器的显示区域分成两个大小可调的、可以向其中添加控件的面板。 legend控件:图例 map控…

System Generator初体验FIR滤波器

文章目录 前言一、介绍1、目标2、过程 二、步骤 1&#xff1a;在 FPGA 中创建设计1、打开 Lab1_1.slx 文件2、运行仿真3、使用 System Generator 创建 FIR 滤波器<1>、从库浏览器寻找需要的模块<2>、配置系统生成器块<3>、在 FPGA 上实现设计 三、步骤 2&…

[React] react-redux基本使用

文章目录 1.redux2.安装redux3.操作redux3.1 创建最为核心的store3.2 创建为store工作的reducer3.3 redux的响应式处理 4.完整版redux4.1 完善actionCreators4.2 thunk中间件 5.react-redux5.1 Count容器组件5.2 connect函数5.3 Provider 1.redux redux原理图 actionCreators:…

一文熟练使用python修改Excel中的数据

使用python修改Excel中的内容 1.初级修改 1.1 openpyxl库的功能&#xff1a; openpyxl模块是一个读写Excel 2010文档的Python库&#xff0c;如果要处理更早格式的Excel文档&#xff0c;需要用到额外的库&#xff0c;例如Xlwings。openpyxl是一个比较综合的工具&#xff0c;能…