2016-01-28 12 views
14

Attualmente sto sviluppando un'applicazione basata su Spring-Boot.Qual è il modo migliore per pianificare l'attività nell'applicazione di avvio di primavera

So che l'annotazione come @Scheduled può pianificare le attività. Dal momento che gli utenti nella mia applicazione vogliono inviare mail in tempi diversi e inviarli solo una volta.

Ho già letto il post Spring scheduling task - run only once, ma è strano sempre "nuovo" un localExecutor in un'applicazione basata su Spring.

In questo modo, una volta che un utente pianifica l'invio di un'e-mail, devo "nuovo" un Esecutore locale per il suo compito.

Quindi, ci sono modi migliori?

risposta

12

Il modo più semplice per pianificare le attività in primavera è creare il metodo annotato da @Scheduled nel bean gestito in primavera. Richiede inoltre @EnableScheduling in tutte le classi @Configuration.

Spring tutorial

+0

sì, ho già utilizzare questo tipo di annotazioni per un'attività di pianificazione. Ma nelle mie condizioni, un utente vuole solo inviare la sua posta una volta in un dato momento. Quindi, se uso l'annotazione @Schedule, devo "polling" per controllare se una mail deve essere inviata ogni qualche minuto o ora ..... – Exia

+0

Hope [this] (http://stackoverflow.com/questions/17402112/ può essere utile per voi –

+0

Thx. Proverò Quartz quindi .. – Exia

8

È possibile utilizzare crontab all'interno @Scheduled

private AtomicInteger counter = new AtomicInteger(0); 

@Scheduled(cron = "*/2 * * * * *") 
public void cronJob() { 
    int jobId = counter.incrementAndGet(); 
    System.out.println("Job " + new Date() + ", jobId: " + jobId); 
} 
Problemi correlati