解决@Async(“taskExecutor“)异步线程报错问题
更新时间:2024年08月14日 10:46:50 作者:wang18057
这篇文章主要介绍了解决@Async(“taskExecutor“)异步线程报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
@Async(“taskExecutor“)异步线程报错
Java 开发中常用@Async实现异步线程调用,以优化接口性能。
但是@Async存在一个问题:子线程的请求头丢失,在本服务没有问题,一旦跨服务,请求头丢失就会发生一系列报错
上代码:

如代码所示,此处使用了@Async实现异步

其中build方法使用fegin调用外部接口
报错信息:

报75行空指针,也就是build方法所在。
跟着报错提示,我们点开看下具体是什么报错

可以看到是getHeaders()方法报了空指针,也就是说请求头丢失
来说说解决办法
1.将当前线程的请求信息给子线程


2.将请求头设置为子线程共享

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
如何使用Springfox Swagger实现API自动生成单元测试
Springfox是一个使用Java语言开发开源的API Doc的框架,它的前身是swagger-springmvc,可以将我们的Controller中的方法以文档的形式展现,这篇文章主要介绍了如何使用Springfox Swagger实现API自动生成单元测试,感兴趣的朋友跟随小编一起看看吧2024-04-04
MyBatisPlus报错:Failed to process,please exclud
这篇文章主要介绍了MyBatisPlus报错:Failed to process,please exclude the tableName or statementId问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-08-08
细说Springcloud eureka的几种主动下线服务的方式
这篇文章主要介绍了细说Springcloud eureka的几种主动下线服务的方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-09-09
BigDecimal divide除法除不尽报错的问题及解决
这篇文章主要介绍了BigDecimal divide除法除不尽报错的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-06-06


最新评论