java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > @Async(“taskExecutor“)异步线程报错

解决@Async(“taskExecutor“)异步线程报错问题

作者:wang18057

这篇文章主要介绍了解决@Async(“taskExecutor“)异步线程报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

@Async(“taskExecutor“)异步线程报错

Java 开发中常用@Async实现异步线程调用,以优化接口性能。

但是@Async存在一个问题:子线程的请求头丢失,在本服务没有问题,一旦跨服务,请求头丢失就会发生一系列报错

上代码:

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

其中build方法使用fegin调用外部接口

报错信息:

报75行空指针,也就是build方法所在。

跟着报错提示,我们点开看下具体是什么报错

可以看到是getHeaders()方法报了空指针,也就是说请求头丢失

来说说解决办法

1.将当前线程的请求信息给子线程

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文