Framework-Vorschläge für Tasks/Jobs, Scheduling und Persistenz

DarthShader

Erfahrenes Mitglied
Hallo zusammen,

ich würde gerne "Aufgaben" (Tasks, Jobs etc..), also ganz verschiedene Dinge wie z.B. Druckaufträge, Versenden-Aufträge, queuen und persistieren, die dann nacheinander abgearbeitet werden.

Dies könnte ich jetzt einfach selbst implementieren; allerdings ist diese Sache sicherlich schon tausend Mal gelöst worden, als da wäre RabbitMQ, Spring Batch usw. RabbitMQ ist allerdings für Messaging (kann man es auch für alle möglichen Arten von persistenten Jobs nutzen?) und Spring Batch ist mir dann doch etwas zu "groß".

Deshalb die Frage, was gibt es noch an modernen Frameworks, die man dazu nutzen könnte?


Vielen Dank für Eure Tipps!
 
Hallo,

Spring Batch bietet eigentlich alle Funktionalitäten die du brauchst und noch viel mehr - die zusätzlichen Features musst du ja (noch) nicht verwenden.
Gerade beim Thema Batch-Verarbeitung habe ich die Erfahrung gemacht, dass sich da die Anforderungen sehr schnell erweitern können: Ausführliche Protokollierung, Retry-Möglichkeit, verteilte Verarbeitung, Job-Partitionierung, Unterstützung für die Verarbeitung großer Datenmengen etc. - also doch nicht nur einfaches Job Scheduling... - dann brauchst du die Features doch ... ;-)

Da Spring Batch IMHO zu den am "besten" ausgestatteten Frameworks zur Batch-Verarbeitung gehört - insbesondere wenn es nicht nur um reines Job-Scheduling sondern auch um die Verarbeitung von großen Datenmengen geht, würde ich dir, auf lange Sicht, tatsächlich zu Spring-Batch raten
http://static.springsource.org/spring-batch/
http://static.springsource.org/spring-batch/features.html

Wenn du aber tatsächlich nur ein "reines" Job-Scheduling Framework brauchst / brauchen wirst... wäre IMHO Quartz eine etwas schlankere Alternative:
http://quartz-scheduler.org/
http://quartz-scheduler.org/overview/features

Es ist natürlich auch möglich Quartz und Spring Batch gemeinsam zu verwenden.

Für ein Statement zum Vergleich Spring-Batch und Quartz siehe:
http://static.springsource.org/spring-batch/faq.html#quartz

Mit Spring Batch und / oder Quartz habe ich bisher gute Erfahrungen gemacht.

Eine Übersicht zu weiteren Job Scheduling Frameworks in Java findest du hier:
http://java-source.net/open-source/job-schedulers


Gruß Tom
 
Zurück