Sto per proporre una nuova architettura per diversi pezzi del sistema su cui sto lavorando; ciò comporterà ottenere un sacco di lavori di sgranatura numerica e di traduzione dei dati fuori tomcat, e su una piattaforma più adatta e ho bisogno di un piccolo consiglio.
In primo luogo, il modo in cui questo sistema è attualmente impostato: c'è un database AS400 e PostgreSQL; alcuni di questi tavoli devono essere sincronizzati in vari punti dell'anno. Un'applicazione di amministrazione in esecuzione su Tomcat6 avrà un pulsante, "Sincronizza" e la classe di azioni struts genererà un nuovo thread per eseguire il lavoro. Il lavoro può richiedere da 15 secondi a 4 giorni (questo è il tempo massimo che abbiamo finora sperimentato).
Non mi piace questo design. Tomcat è un server Web, non un server di elaborazione dei lavori.
Quindi, la soluzione che ho in mente è quella di prendere uno dei nostri server inutilizzati e mettere su Jboss 7. quindi avere una semplice interfaccia su quel server di elaborazione del lavoro (ad es. web, JMS) che ascolta i trigger. quando qualcuno fa clic sul pulsante "Sincronizza" sulla pagina Web, al server di lavoro viene inviato il segnale che indica quale lavoro attivare, quali parametri sono inclusi e ad avviare l'elaborazione del lavoro.
Anni fa ho progettato un concetto simile nell'elaborazione dei lavori in cui avevo una coda JMS che ascoltava i lavori in arrivo. Quando una determinata attività veniva aggiunta alla coda, il sistema si attivava ed eseguiva quell'attività. Ma su quel sistema i lavori non richiederebbero più di 5 o 6 secondi, non diversi giorni quindi non sono sicuro che le code JMS sarebbero la soluzione migliore qui. Ho guardato Quartz ma questo è più di un ricorrente sistema di pianificazione delle attività. Anche se so che posso aggirarlo e farlo funzionare, mi sto ancora chiedendo se questa sia la migliore tecnologia per il problema.
Hai qualche suggerimento?