私は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}
ここに何が欠けていますか?
前もって感謝します。
すべてのプロパティを設定した後、スケジューラを返す前に、scheduler.initialize()
を明示的に呼び出す必要があります。
完全に動作するテストケースを参照してください こちら 。