2009-10-13 15 views
6

Sto considerando l'utilizzo del framework Quartz per pianificare l'esecuzione di diverse centinaia di lavori.Java: creazione di un flusso di lavoro in quarzo

In base all'API, i lavori possono essere programmati per essere eseguiti in determinati momenti, ma non per essere eseguiti uno dopo l'altro (e interrompere una catena di lavori se uno fallisce). Gli unici metodi consigliati sono stato in grado di trovare sono:

  • Uso di un listener, che si accorge il completamento di un lavoro e pianificare il grilletto accanto al fuoco (come coordinare questo?)
  • Ogni lavoro riceverà una parametro contenente il lavoro successivo da eseguire e, dopo aver completato il lavoro effettivo, pianificare la sua esecuzione. (Collaborativo)

Conoscete un metodo migliore per creare un flusso di lavoro di lavoro in Quartz?

Potete consigliare altri metodi/framework per l'implementazione di un flusso di lavoro in Java?

MODIFICATO: Nel frattempo ho saputo di OSWorkflow che sembra essere una buona corrispondenza per quello di cui ho bisogno. Sembra che quello che devo implementare sia un "Sequence Pattern".

risposta

1

Mi sembra che tu voglia che Quartz pianifichi il primo lavoro , e ricolleghi tutto ciò.

Hai guardato incapsulare ogni attività utilizzando il Command Pattern e collegandoli insieme?

2

Quando la documentazione di Quartz parla di "Job", si riferisce a una classe che implementa l'interfaccia "Job", che è in realtà solo una classe con un metodo "execute" che utilizza l'oggetto Quartz Context. Quando crei questa implementazione puoi davvero fare quello che vuoi.

È possibile creare un'implementazione di Quartz Job Interface che richiama semplicemente tutti i lavori nel flusso di lavoro in serie e genera un'eccezione JobExecutionException in caso di errore.

0

Ho lavorato su un progetto chiamato dinamica Utilità di pianificazione che utilizzano quarzo per eseguire catene di lavoro l'attuazione di un flusso di lavoro semplice in modo fault-tolerant (definied in formato XML).

Date un'occhiata a http://sourceforge.net/projects/dynatasksched/
Il progetto è beta, ma penso che possa alcune idee per iniziare dà ..

Spero che sia utile!

0

Per il supporto per il concatenamento di quarzi, è possibile controllare il progetto QuartzDesk in cui sono stato coinvolto. Nella versione 2.0. abbiamo aggiunto un potente job chaining engine che ti consente di orchestrare i tuoi lavori Quartz senza la necessità di modificare il codice dell'applicazione.

Il motore si occupa di propagare il risultato dell'esecuzione del lavoro e altri parametri dal processo di origine al lavoro di destinazione concatenato.

QuartzDesk viene fornito con una GUI che consente di aggiornare dinamicamente le catene di lavoro senza interrompere l'applicazione.

enter image description here

Problemi correlati