2016-08-01 48 views
2

如何在完成所有文件的所有處理後,在彈簧集成中創建自動關閉?文件和進程的彈簧集成:文件處理完成時的關閉應用程序

我的應用程序下載未定義的數字順序中的所有文件,流程是這樣的:

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

末,我應該關閉我的應用程序。

如何知道所有文件都被處理? 任何人都有關於它的經驗?

謝謝

+0

只是不包括彈簧-web入門模塊。這樣,應用程序將是一個標準的Java應用程序,並會在作業結束後立即結束。 –

+0

我喜歡完全退出應用程序 – NAZEHA

+0

這是一個普通的Java程序,應用程序將結束並退出。 –

回答

1

在你的情況下,你需要跟蹤你的入站目錄。 您必須在流程中添加另一個步驟(可能要跟蹤最後一個文件)。 我會建議一種ETL技術:讀取文件描述然後處理它們。

當它將被處理時,您可以發送事件來關閉應用程序。

春天啓動的應用程序可以通過使用ConfigurableApplicationContext停止:

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

也有使用彈簧操動shutdown端點另一種方式: 見How to shutdown a Spring Boot Application in a correct way?

Spring Boot documentation