web-dev-qa-db-ja.com

Spring Async ThreadPoolTask​​Schedulerが初期化されていません

私はSpringで非同期アノテーションを使用しようとしていますが、

Java.lang.IllegalStateException: ThreadPoolTaskScheduler not initialized

エラー、非同期としてマークされたメソッドを実行しようとすると。非同期の構成は次のとおりです。

@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}

ここに何が欠けていますか?

前もって感謝します。

15
small_ticket

すべてのプロパティを設定した後、スケジューラを返す前に、scheduler.initialize()を明示的に呼び出す必要があります。

完全に動作するテストケースを参照してください こちら

29