2015-02-28 5 views
6

Jak mogę włączyć zaplanowane zadania tylko w określonych profilach?Jak włączyć @ Zaplanowane prace według profilu na wiosnę?

pseudokod:

@Scheduled(cron = "${job.cron}") 
@Profile("prod") 
public void runJob() { 

} 

Czy to możliwe?

+1

Jeśli nie ma zadania zaplanowane prostu zrobić osobny config dla '@ EnableScheduling' adnotacji który jest związany z określonym profilu. Jeśli to nie jest włączone, adnotacje typu @ @ Scheduled są ignorowane. –

+0

Dzięki, to świetny pomysł, aby umożliwić planowanie według profilu jawnie. Nadal jest to przydatne tylko wtedy, gdy nie chcę mieć żadnych zadań w teście. Głównie po prostu chcę wykluczyć konkretne. – membersound

+0

Jeśli nie chcesz, aby zadania zawierały adnotację do komponentu bean, zaimplementowano metodę @ @ Profile. –

Odpowiedz

4

Powinieneś mieć jedną fasolkę za profil:

@Component 
@Profile("prod") 
public class ProdJob { 

    @Scheduled(cron = "${job.cron}") 
    public void runJob() { 

    } 

} 

@Component 
@Profile("beta") 
public class BetaJob { 

    @Scheduled(cron = "${job.cron}") 
    public void runJob() { 

    } 
} 
Powiązane problemy