当前位置:  开发笔记 > 编程语言 > 正文

Spring Async ThreadPoolTask​​Scheduler未初始化

如何解决《SpringAsyncThreadPoolTask​​Scheduler未初始化》经验,为你挑选了1个好方法。

我试图在Spring中使用Async注释,但我得到了

java.lang.IllegalStateException: ThreadPoolTaskScheduler not initialized

错误,当我尝试运行标记为异步的方法时.以下是Async的配置:

@EnableScheduling
@EnableAsync
@Configuration 
public class SchedulingConfiguration implements AsyncConfigurer{

    @Override
    public Executor getAsyncExecutor() {
        ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
        scheduler.setPoolSize(10);
        return scheduler;
    }

}

以下是异步方法的声明.

@Async
@Transactional(value = "baseTransactionManager", isolation = Isolation.READ_COMMITTED)
public void foo(Bar bar) {// some code here}

我在这里想念的是什么?

提前致谢.



1> Yaroslav Sta..:

scheduler.initialize()在返回调度程序之前,必须在设置所有属性后显式调用.

查看全部工作测试用例这里.


请注意,只有在调度程序不是Spring bean时才需要调用`initialize()`,否则在`afterPropertiesSet()`中自动调用它.
Stavnichy我找到了我的异步方法无效的原因.我必须在Configuration类中指定componentScan.我的配置类是在主配置中导入的,我在父配置文件中进行了组件扫描.但是,对于Async来说还不够,因此我已将componentScan添加到AyncConfiguration文件中,一切正常.非常感谢!
推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有