2015-02-28 11 views
6

Come è possibile abilitare i lavori pianificati solo in profili specifici?Come abilitare i lavori @Scheduled per profilo in primavera?

pseudocodice:

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

} 

è possibile?

+1

Se non si vuole alcun lavori pianificati solo fare una configurazione separata per il '@ EnableScheduling' annotazione che è legato ad un determinato profilo. Se questo non è abilitato, le annotazioni '@ Scheduled' vengono ignorate. –

+0

Grazie, è una grande idea quindi abilitare la pianificazione per profilo esplicito. Ancora questo è utile solo se non voglio avere alcun lavoro in prova. Principalmente voglio solo escludere quelli specifici. – membersound

+0

Se non si desidera che i lavori annotino il bean con il metodo '@ Profile' del metodo. –

risposta

4

Si dovrebbe avere un fagiolo per ogni profilo:

@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() { 

    } 
} 
Problemi correlati