项目中需要用到了异步操作,一开始我是直接使用了@Async这个注解来进行异步操作,但在实际运行的时候,却发现当代码出现异常的时候,并没有正确的抛出异常. 本身我们这个项目是封装了异常抛出的情况,但没有顺利实行.
在检查了一番后,经同事提点,在加上这个注解前,其实还需要写一个对异常线程池进行定义配置的类,这样才能正常使用这个注解(主程序入口中也需要加上@EnableAsync注解),一番折腾后,由于时间紧迫,决定用一些现成的方法实现异步操作
对比过后,发现有个事件监听的方法,eventListener,这个方法是异步的,这个需要你新建两个类,一个是写事件,一个是监听器,然后在方法中使用messageEmitter.publishEvent(new xxxEvent(参数1,参数2)),这样子也能实现异步操作并正确地抛出了异常,而且还把这个事件单独拿了出来,达到了解耦的目的
记一波异步@Async的坑并记录下一个可以应用于异步处理的方法
最新推荐文章于 2024-12-25 09:33:49 发布
在项目中使用@Async注解进行异步操作时遇到异常处理问题,通过配置异常线程池和使用@EnableAsync注解解决。介绍了eventListener方法作为替代方案,实现异步操作并正确抛出异常,同时达到解耦目的。
451

被折叠的 条评论
为什么被折叠?



