Elaborazione batch continua in Java

4

Il mio team ha scritto un'applicazione che abbiamo deciso di eseguire un processo, diremo circa una volta al giorno, a condizione che l'applicazione venga utilizzata. Non ho mai fatto nulla di simile in Java prima, quindi spero di avere un'idea migliore di come progetterei una soluzione.

Inizialmente, ho seguito il tutorial di Oracle "Panoramica di Batch Processing" e ho cercato di creare un esempio funzionante di un processo batch. Tuttavia, sono arrivato abbastanza lontano nel tutorial e ho letto questa riga:

Starting a Batch Job from a Servlet - Note that the mere presence of a job XML file or other batch artifacts (such as ItemReader) doesn't mean that a batch job is automatically started when the application is deployed. A batch job must be initiated explicitly, say, from a servlet or from an Enterprise JavaBeans (EJB) timer or an EJB business method.

Quindi sembrerebbe che la funzionalità che sto guardando non implichi necessariamente un processo continuo e debba essere avviata manualmente.

Le nostre prime riflessioni su ciò che volevamo ottenere era avere un "batch job" che iniziasse un servizio che contenesse la nostra logica di business almeno una volta al giorno. Quindi mi chiedo:

  1. L'elaborazione continua è qualcosa che dovrei essere in grado di eseguire con l'API di elaborazione batch che sto guardando?
  2. In caso affermativo, come funziona comunemente?
  3. In caso negativo, in che modo gli sviluppatori Java gestiscono tipicamente questo tipo di problema da un livello elevato?
posta Canadian Coder 06.07.2015 - 23:04
fonte

2 risposte

3

Quello che stai cercando di creare esiste già: cerca le librerie cron di Java. Puoi configurare un crontab simile al demone Unix che richiama le classi Java agli intervalli scelti dall'utente fino a quando il tuo programma è in esecuzione.

Piuttosto che concentrarsi sull'aspetto batch del compito, concentrati sull'aspetto temporale. L'elaborazione di un batch di record è concettualmente più semplice che garantire che il programma venga eseguito in momenti specifici e, fortunatamente, questa parte è già stata eseguita da qualcun altro.

    
risposta data 06.07.2015 - 23:22
fonte
1

Usiamo bmap4j per i batch in Java EE. Anche se a volte è un po 'complicato, fa tutto ciò di cui abbiamo bisogno: bmap4j

    
risposta data 07.07.2015 - 08:29
fonte

Leggi altre domande sui tag