Czy istnieje sposób na warunkowanie @EnableScheduling na podstawie właściwości aplikacji? czy możliwe jest również wyłączenie kontrolerów na podstawie właściwości?Spring Boot @EnableScheduling warunkowo
Co staram się osiągnąć, to mieć tę samą aplikację rozruchową, która służy do obsługi żądań internetowych (ale nie uruchamiać zaplanowanych zadań na tym samym komputerze), a także instalować tę samą aplikację na serwerach zaplecza, aby uruchamiać tylko zaplanowane zadania .
Moja aplikacja wygląda tak
@SpringBootApplication
@EnableScheduling
@EnableTransactionManagement
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
i próbki zaplanowane zadanie wygląda to
@Component
public class MyTask {
@Scheduled(fixedRate = 60000)
public void doSomeBackendJob() {
/* job implementation here */
}
}
Okazało się, że dużo dodatkowej pracy, ponieważ muszę wyłączyć/uaktywnić wszystkie zadania naraz, sprawdź moją odpowiedź –
'@ ConditionalOnProperty' nie będzie miało wpływu na metodę' @ Scheduled', ponieważ, jak wszystkie warunki, wpływa tylko na rejestrację fasoli. Więcej informacji znajduje się w javadoc: http://docs.spring.io/spring-framework/docs/4.3.2.RELEASE/javadoc-api/org/springframework/context/annotation/Conditional.html?is-external=true –
Moje złe i dzięki za poprawkę, właśnie zredagowałem odpowiedź :) – imTachu