BladeExecutorConfiguration不起作用

Blade 未结 1 1363
17434685
17434685 2020-08-18 13:34

一、该问题的重现步骤是什么?

1.看着这个配置类应该是将框架的异步方法采用统一的线程池启动,

   但实际上@Async的方法并没有进入这个线程池,包括自身那些log监听的异步方法都没有

2. 可以从

executor.setThreadNamePrefix("async-executor-");

    分析,如果进入,日志中的threadid应该是这个开头,但实际上都是“task 1”, “task 2”等.

3. 在idea中也用debug模式打断点启动调试了一下,


@Bean(name = "taskExecutor")

public Executor getAsyncExecutor() {


这个方法根本没有走进去... 感觉像是框架有bug,因为我自己并没有其他地方去配置Executor,应该不存在被覆盖或者被注入了其他的bean


二、你期待的结果是什么?实际看到的又是什么?

让BladeExecutorConfiguration的起作用, 配置的线程池起作用


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

bladex 2.5.1 linux


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。


1条回答
  •  17434685
    17434685 (楼主)
    2020-08-18 21:59

    经过一番调试解决了, 去掉@Bean注解里的 (name = "taskExecutor")就可以了, 应该是"taskExecutor"是spring默认的线程执行者实现,在启动时就被容器自己注入了,不会再加载重名的bean造成的.

    2 讨论(0)
提交回复