Ho un'applicazione Java EE che scarica i prezzi delle azioni da Internet ogni quindici minuti. Da un punto di vista della precisione temporale è meglio per l'applicazione internalizzare questa operazione periodica, ad esempio utilizzare Thread.sleep()
in combinazione con un contatore o impostare un timer O sarebbe meglio esporre l'attività tramite un URL e fare in modo che un processo cron della piattaforma colpisca l'URL periodicamente (alla frequenza richiesta ovviamente).Utilizzare il job cron Thread.sleep(), Timer o piattaforma per un'operazione periodica nell'applicazione Java EE
Quali sono i pro e i contro di entrambi gli approcci?
Sono stato spaventato da un errore del timer che ho visto segnalato contro l'implementazione di OpenJDK. Il bug indicava che i cambiamenti nel tempo di sistema influivano sul funzionamento delle operazioni e dei metodi relativi al tempo, come la periodicità del sonno e del timer.
Si dovrebbe considerare l'utilizzo di quarzo. – fge
Perché qualcuno dovrebbe cambiare l'ora del sistema? –
Correlati: http://stackoverflow.com/questions/7499534/applicationscope-bean-that-uses-a-timertask-sheduler-good-or-bad/7499769#7499769 e http://stackoverflow.com/questions/5357033/background-timer-task-in-jsp-servlet-web-application/5357856 # 5357856 – BalusC