E' una web app JAvaEE pura!
I modelli vengono costantemente riempiti ed aggiornati seguendo questa logica di base:
Viene lanciato inizialmente uno ScheduledExecutorService che ogni cinque secondi esegue il seguente processo:
-legge da uno stream gli url per i dati da memorizzare/aggiornare
-crea un Executors.newFixedThreadPool(100);
-crea una {List<Callable<ClasseRaccolta>>()} lista di threads con gli url ottenuti
-invoca simultaneamente i Threads con un ExewcutorService {executor.invokeAll(ThreadQuote, 5, TimeUnit.SECONDS)}
-Legge la lista di Future ottenuti dalla chiamata precedente per aggiornare i modelli:
for (Future<ClasseRaccolta> future : resultList)
{
if (!future.isCancelled())
{
ClasseRaccolta x= future.get();
//aggiornaModelli(x);
}
}
-Chiude l'esecutore: executor.shutdown();
Aprire e chiudere un ExecutorService a ogni iterazione non è stato il mio approccio iniziale, ma
cosi facendo riesco a tenere moderato e costante l'utilizzo delle risorse, in ambiente locale perlomeno.
Appena ho novità circa l'errore ricevuto dal contenitore Tomcat lo inserisco. Sto procedendo alla riattivazione.
Grazie