2016-08-01 14 views
2

Wie erstellt man automatische Abschaltung im Frühjahr Integration nach Abschluss aller Prozesse für alle Dateien?Spring Integration: Herunterfahren der Anwendung, wenn die Behandlung von Dateien abgeschlossen ist

Meine Anwendung herunterladen undefinierte Anzahl von Dateien und Prozess alle Dateien nacheinander ist die Strömung wie folgt aus:

file:inbound-channel-adapter --> Transformer --> Splitter --> 
http-outbound-gateway --> int:aggregator --> mail:outbound-channel-adapter. 

Am Ende, ich sollte Abschaltung meine App.

Wie können Sie wissen, dass alle Dateien verarbeitet werden? Jeder hat eine Erfahrung darüber?

Danke

+0

Gerade beinhalten nicht die Feder Siehe -Web Startmodul. Auf diese Weise wird die Anwendung eine Standard-Java-App und wird beendet, sobald der Job beendet ist. –

+0

Ich möchte die App vollständig beenden – NAZEHA

+0

Das ist ein normales Java-Programm, die Anwendung wird beendet und beendet. –

Antwort

1

In Ihrem Fall müssen Sie Ihr Eingangsverzeichnis verfolgen. Sie müssen Ihrem Flow einen weiteren Schritt hinzufügen (wahrscheinlich um die letzte Datei zu verfolgen). Ich würde eine ETL-Technik vorschlagen: Lesen Sie die Dateibeschreibungen und bearbeiten Sie sie dann.

Wenn es verarbeitet wird, können Sie Ereignis senden, um die App herunterzufahren.

Frühling Boot-Anwendung kann durch die Verwendung ConfigurableApplicationContext gestoppt werden: ist eine andere Art und Weise shutdown Endpunkt Actuator mit Spring dort

SpringApplication app = new SpringApplication(Application.class); 
ConfigurableApplicationContext context = app.run(args); 
context.close(); 

auch: How to shutdown a Spring Boot Application in a correct way?

Spring Boot documentation