Есть ли способ сделать @EnableScheduling условным на основе свойства приложения? также можно также отключить контроллеры на основе свойств?Spring Boot @EnableScheduling условно
То, что я пытаюсь достичь, - иметь такое же приложение загрузки весны, которое используется для обслуживания веб-запросов (но не запускать запланированные задачи на одном компьютере), а также установить такое же приложение на серверных серверах для запуска только запланированных задач ,
Мое приложение выглядит следующим образом
@SpringBootApplication
@EnableScheduling
@EnableTransactionManagement
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
и образец запланированной работы выглядит следующим образом
@Component
public class MyTask {
@Scheduled(fixedRate = 60000)
public void doSomeBackendJob() {
/* job implementation here */
}
}
Найдено, что это много лишней работы, так как мне нужно отключить/включить все задания сразу, проверить мой ответ –
'@ ConditionalOnProperty' не будет влиять на метод' @ Scheduled', так как, как и все условия, это влияет только на регистрацию bean-компонентов. См. Javadoc для получения дополнительной информации: http://docs.spring.io/spring-framework/docs/4.3.2.RELEASE/javadoc-api/org/springframework/context/annotation/Conditional.html?is-external=true –
Неплохо и спасибо за исправление, я только что отредактировал ответ :) – imTachu