Frage

Ich verwende Spring Batch für ein System, das eine Menge von Batch-Operationen der Fall ist.
Ich verwende SimpleJobRepository mit im Speicher DAOs.
Ich würde gerne wissen, ob es eine Möglichkeit, eine JobRepository zu vermeiden, ist mit? etwas Ähnliches wie die resourceless Transaktionsmanager?
Der Grund, warum ich gefragt habe, ist, dass das System ständig laufen soll ohne Neustart und ich habe einige Bedenken hinsichtlich der Speicher wird es raubend sein.
Ich weiß, dass ich eine Datenbank verwenden kann, basierend JobRepositry, aber ehrlich gesagt, ich weiß wirklich nicht einen überhaupt brauchen.

Wenn es keine Möglichkeit gibt zu tun, so dass ich es zu schätzen wissen, wenn jemand mich über den Speicherverbrauch Problem beruhigen kann.

Danke.

War es hilfreich?

Lösung

Sie müssen Job-Repository verwenden, da es Informationen über den Job Kontext hält. die Lösung für Ihren Fall ist - machen Sie Ihren Job-Repository mit scope = „Prototyp“ Dadurch wird eine neue In-Memory-dao (Karte Implementierung) für jeden Job, und somit kein Speicherproblem cerate. der Aufwand für die Schaffung neue Instanz jedes Mal, in Bezug auf den Batch-Jobs bedeutungslos ist.

Andere Tipps

In-Memory-Implementierung hat einen großen Nachteil. Sie können nicht Multithreading in Ihrem batchs verwenden

So müssen Sie einen Datenbank-Repository verwenden. Ich schlage vor, Sie H2 SQL verwenden: es ist eine eingebettete Datenbank sehr leicht. Wir verwenden es für unsere Unit-Tests.

Es funktioniert sehr gut mit Hibernate.

Der Vorteil dieses Verfahrens gegenüber einem Bens ist Ihnen Verbindung Memory-Datenbank verbinden können die Aufträge Status zu überprüfen (und das Datum der Kutter, etc ...).

Ich denke, solange meine Batch-Verarbeitung Code Thread-sicher ist, sollte es keine Rolle, ob das Repository im Speicher oder eine Datenbank. Ja, Sie könnten einige der Clustering Vorteile verlieren, die Sie erhalten, wenn Sie DB verwenden, aber wenn ich nur eine Batch-Job auf meinem Server läuft und seine Multiple Threading mit seiner Arbeit zu tun, das sollte in Ordnung sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top