Привязка двух разных TaskScheduler к приложению Spring Boot - PullRequest
0 голосов
/ 23 ноября 2018

У меня следующая проблема: у меня в приложении несколько аннотаций @Scheduled, определяющих задания cron, которые могут выполняться одновременно.Насколько я понял, стандартное поведение состоит в том, что каждое задание cron выполняется одним однопоточным TaskScheduler, так что одновременно может выполняться только одно задание cron, а все остальные задания помещаются в очередь.Это было бы моим желаемым поведением, но я вижу, что задания выполняются параллельно.

После долгих поисков я обнаружил, что класс, лежащий в основе проверки работоспособности, определил TaskScheduler с несколькими потоками.

Зная это, я хотел бы сохранить библиотеку healthcheck, используя ее многопоточный TaskScheduler и определить другой TaskScheduler, который является однопоточным и используется моей аннотацией @Scheduled.

Я могуопределить компонент, который использует однопоточный планировщик:

@Bean
public ThreadPoolTaskScheduler threadPoolTaskScheduler() {
  ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
  threadPoolTaskScheduler.setPoolSize(THREADS_COUNT);
  return threadPoolTaskScheduler;
}      

Но как можно привязать этот планировщик только к моим @Scheduled аннотациям?

...