Не работает TaskExecutor в Spring

Рейтинг: 0Ответов: 1Опубликовано: 31.01.2023

Есть конфиг

@Configuration
@EnableAsync
public class AppConfig {

    @Bean
    public TaskExecutor threadPoolTaskExecutor() {
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        executor.setCorePoolSize(4);
        executor.setMaxPoolSize(4);
        executor.setThreadNamePrefix("thread");
        executor.initialize();
        executor.setAwaitTerminationSeconds(Integer.MAX_VALUE);
        executor.setWaitForTasksToCompleteOnShutdown(true);
        return executor;
    }

    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

есть класс

@Service
public class ThreadExecutorService {

    @Autowired
    TaskExecutor taskExecutor;

    public  void generateCameraReport() throws JsonProcessingException {
    
        for (int i = 0; i < 4; i++) {
            taskExecutor.execute(() -> {
                System.out.println(1);
            });
        }
   
    }
}

В дебагере исполнение не проваливается внутрь taskExecutor.execute(() -> { точка останова на печати вообще не срабатывает, все время скачет между пока цикл не пройдет for (int i = 0; i < 4; i++) { taskExecutor.execute(() ->

Подскажите как запустить исполнение, бин TaskExecutor срабатывает мой, в дебагере видны его настройки. Java 17 Spring Boot Starter 3.0.2

Ответы

▲ -1

используйте аннотацию @Async от спринга