Stiamo creando un'app Web in cui è necessario disporre della concorrenza per alcuni casi aziendali. Questa applicazione verrebbe distribuita in un contenitore Tomcat. So che creare thread definiti dall'utente nel contenitore web è una cattiva idea e sto cercando di esplorare le opzioni che ho.Implementazione della concorrenza nell'applicazione Web Java EE
- La mia libreria multi-thread utilizzata come componente JCA. Siamo contrari all'utilizzo di questo approccio a causa della curva di apprendimento che potrebbe essere coinvolta.
- So che sono disponibili le API di WorkManager ma suppongo che questo non sia implementato da tomcat, quindi questa opzione si spegne.
- Ho fatto qualche ricerca e ho scoperto che la libreria CommonJ è consigliata per Tomcat. Qualcuno l'ha usato?
- Inoltre, vedo che sono disponibili ManagedExecutorService ma non sono sicuro di come utilizzarlo ed è diverso dalle API di WorkManager (e dalla libreria commonJ)?
Qualsiasi aiuto su questo apprezzato. A proposito, usare JMS è fuori discussione a causa dell'ambiente di distribuzione. Sono incline ai punti 3 e 4 ma non ho molta conoscenza in merito. Qualcuno potrebbe guidare pls.
Non sono sicuro che i thread di generazione siano una buona idea. se Tomcat non conosce i thread, come lo controllerebbe? per esempio. chiudere il contenitore sarebbe un problema se i thread sono in esecuzione e inoltre non dimentichiamo che poiché i thread sono fuori dal controllo di tomcat, i thread saranno in competizione con Tomcat per la memoria. – arya
Arya, Will ha ragione, gestisci le tue discussioni e (fidati del mio dolore) non seguire la rotta EJB/JCA. Il fatto di trovarsi in un contenitore Servlet non modifica la necessità di controllare il pool di thread. Il servizio Executor può aiutarti facilmente a farlo. Legare il ciclo di vita dei tuoi esecutori a quello dei tuoi servlet garantisce l'inizializzazione e lo spegnimento puliti. –
BGR, lo farai, ragazzi, avete un'idea di ManagedExecutorService? sarebbe più appropriato in questo contesto? – arya