Gibt es eine Möglichkeit, @EnableScheduling basierend auf einer Anwendungseigenschaft bedingt zu machen? Ist es auch möglich, Controller basierend auf Eigenschaften zu deaktivieren?Spring Boot @EnableScheduling bedingt
Was ich versuche zu erreichen, ist die gleiche Spring-Boot-Anwendung verwendet Web-Anfragen zu bedienen (aber nicht geplante Aufgaben auf dem gleichen Rechner ausführen), und installieren Sie die gleiche Anwendung auf Backend-Servern nur geplante Aufgaben ausführen .
Meine app sieht aus wie dieser
@SpringBootApplication
@EnableScheduling
@EnableTransactionManagement
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
und eine Probe geplanten Auftrag sieht wie folgt aus
@Component
public class MyTask {
@Scheduled(fixedRate = 60000)
public void doSomeBackendJob() {
/* job implementation here */
}
}
diese gefunden werden eine Menge zusätzlicher Arbeit, da ich alle Jobs auf einmal deaktivieren/aktivieren muss, überprüfe meine Antwort –
'@ ConditionalOnProperty' hat keinen Effekt auf eine '@ Scheduled'-Methode, da sie, wie alle Bedingungen, nur die Bean-Registrierung betrifft. Weitere Informationen finden Sie im javadoc: http://docs.spring.io/spring-framework/docs/4.3.2.RELEASE/javadoc-api/org/springframework/context/annotation/Conditional.html?-external=true –
Mein schlechtes und danke für die Korrektur, ich habe nur die Antwort bearbeitet :) – imTachu