У меня есть длительный метод обслуживания, который я начинаю с вызова отдыха от контроллера.Spring Boot @Async называется Synchronusly
Услуги:
@Service
public class TestServiceImpl implements TestService {
@Override
public void doSomething() {
System.out.println("1: " + DateTime.now());
runLongTask();
System.out.println("2: " + DateTime.now());
}
@Async
private runLongTask() {
System.out.println("Test");
Thread.sleep(10000);
System.out.println("3: "+ DateTime.now());
}
}
В моей Application.java я имею
private int poolSize = 10;
private int queueCapacity = 10;
@Bean(name="taskExecutor")
public TaskExecutor taskExecutor() {
ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
taskExecutor.setMaxPoolSize(this.poolSize);
taskExecutor.setQueueCapacity(this.queueCapacity);
taskExecutor.afterPropertiesSet();
return new ThreadPoolTaskExecutor();
}
И, конечно, у меня есть @EnableAsync аннотацию в моем классе Application.java
Так что я бы ожидать, что выход такой:
1: 2015-10-23 11:20:00
2: 2015-10-23 11:20:01
Test
3: 2015-10-23 11:20:11