6 Stimmen

Java - Erstellen eines Arbeitsablaufs in Quartz

Ich erwäge die Verwendung des Quarz Framework, um die Ausführung von mehreren hundert Aufträgen zu planen.

Laut ihrer API können Aufträge so geplant werden, dass sie zu bestimmten Zeitpunkten ausgeführt werden, aber nicht so, dass sie nacheinander ausgeführt werden (und eine Kette von Aufträgen unterbrochen wird, wenn einer fehlschlägt). Die einzigen empfohlenen Methoden, die ich finden konnte, sind:

  • Verwendung eines Listeners, der die Beendigung eines Auftrags bemerkt und den nächsten Auslöser plant (wie kann dies koordiniert werden?)
  • Jeder Auftrag erhält einen Parameter, der den nächsten auszuführenden Auftrag enthält, und nach Abschluss der eigentlichen Arbeit wird dessen Ausführung geplant. (Kooperativ)

Kennen Sie eine bessere Methode, um in Quartz einen Arbeitsablauf für Aufträge zu erstellen?

Können Sie andere Methoden/Frameworks für die Implementierung eines Workflows in Java empfehlen?

EDITED: In der Zwischenzeit habe ich herausgefunden, dass OSWorkflow die für meine Bedürfnisse gut geeignet zu sein scheint. Was ich implementieren muss, ist ein " Sequenz-Muster ".

2voto

Jon Quarfoth Punkte 2099

Wenn in der Quartz-Dokumentation von "Job" die Rede ist, ist damit eine Klasse gemeint, die die "Job"-Schnittstelle implementiert, also eine beliebige Klasse mit einer "execute"-Methode, die das Quartz Context-Objekt aufnimmt. Bei der Erstellung dieser Implementierung können Sie wirklich alles tun, was Sie wollen.

Sie könnten eine Implementierung der Quartz Job-Schnittstelle erstellen, die einfach alle Jobs in Ihrem Workflow nacheinander aufruft und bei einem Fehler eine JobExecutionException-Ausnahme auslöst.

1voto

Brian Agnew Punkte 260470

Es klingt für mich so, als ob Sie möchten, dass Quartz die erste Job und ketten Sie alles daran.

Haben Sie die Kapselung jeder Aufgabe mit der Befehlsmuster und sie miteinander zu verknüpfen?

1voto

zerologiko Punkte 1815

Ich habe an einem Projekt gearbeitet, das Dynamischer Aufgabenplaner die Quartz zum Ausführen verwenden Berufsketten Implementierung eines einfachen Arbeitsablaufs mit Fehlertoleranz (definiert im XML-Format).

Werfen Sie einen Blick auf http://sourceforge.net/projects/dynatasksched/
Das Projekt ist noch im Beta-Stadium, aber ich denke, es kann Ihnen einige Ideen für den Anfang liefern.

Ich hoffe, es ist nützlich!

0voto

Jan Moravec Punkte 1758

Für die Unterstützung der Job-Verkettung für Quartz sollten Sie sich die QuarzDesk Projekt, an dem ich mitgewirkt habe. In Version 2.0. haben wir eine leistungsstarke Auftragskettenmaschine die es Ihnen ermöglicht, Ihre Quartz-Jobs zu orchestrieren, ohne dass Sie Ihren Anwendungscode ändern müssen.

Die Engine sorgt dafür, dass das Ergebnis der Auftragsausführung und andere Parameter vom Quellauftrag an den verketteten Zielauftrag weitergegeben werden.

QuartzDesk verfügt über eine grafische Benutzeroberfläche, mit der Sie Ihre Job-Ketten dynamisch aktualisieren können, ohne Ihre Anwendung zu unterbrechen.

enter image description here

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X