我有一个Spring项目,版本是2.3.5.RELEASE,我已经更新到2.7.18。更新后,与
Executor
交互时出现错误。
我尝试调试并抛出日志消息,但它不起作用
2.3.5.RELEASE版本没有任何错误
查看堆栈跟踪,Spring Cloud Sleuth 似乎正在尝试跟踪您传递给执行器的可运行对象,但它失败了,因为 BraveSpan 对象为 null。
您需要使用 Sleuth 包装器来包装 Executor 对象,如下所示:
@Configuration
public class ThreadConfig {
@Autowired
private BeanFactory beanFactory;
@Bean
public Executor executor() {
ThreadPoolTaskExecutor threadPoolTaskExecutor
= new ThreadPoolTaskExecutor();
threadPoolTaskExecutor.setCorePoolSize(1);
threadPoolTaskExecutor.setMaxPoolSize(1);
threadPoolTaskExecutor.initialize();
return new LazyTraceExecutor(beanFactory, threadPoolTaskExecutor);
}
}
您可以在这里阅读:https://www.baeldung.com/spring-cloud-sleuth-single-application#4-spanning-runnables