2016-08-01 104 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