Ho sviluppato un'applicazione Web utilizzando servlet e JSP. Non sto usando alcun framework di per sé, usando invece il mio framework MVC fatto in casa. Sto usando MySQL come back-end.esecuzione di attività periodica sul lato server per servlet JSP Sito Web MVC
voglio fare quanto segue:
- Clean up alcuni dati dalla base di dati ogni ora
- Generare e statistiche memorizzare circa i dati ogni 15 minuti in un file XML da qualche parte
Il problema è: attualmente tutto il mio codice viene eseguito come risultato della richiesta ricevuta da un client.
Come si eseguono attività periodiche sul lato server?
Una soluzione che ho ora è quella di creare un thread nella funzione init del controller. Ci sono altre opzioni?
Basta desidera aggiungere alla risposta fantastica di BalusC che '' metodi scheduleWithFixedDelay' scheduleAtFixedRate' e 'di ScheduledExecutorService' potranno sopprimere le esecuzioni future se è stato rilevato un'eccezione in una corsa. Quindi ricorda di gestire le tue eccezioni. 'Se una qualsiasi esecuzione dell'attività riscontra un'eccezione, le esecuzioni successive vengono soppresse. – dvd