Spring集成:完成文件处理时关闭应用程序

时间:2016-08-01 13:27:49

标签: spring-boot spring-integration

如何在完成所有文件的所有进程后在spring集成中创建自动关闭?

我的应用程序下载未定义的文件数并按顺序处理所有文件,流程如下:

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

最后,我应该关闭我的应用程序。

如何知道所有文件都已处理? 有人有经验吗?

由于

1 个答案:

答案 0 :(得分:1)

在这种情况下,您需要跟踪入站目录。 您必须向流添加另一个步骤(可能是跟踪最后一个文件)。 我建议使用ETL技术:读取文件描述然后处理它们。

当处理它时,你可以发送事件来关闭应用程序。

可以使用ConfigurableApplicationContext

停止Spring启动应用程序
SpringApplication app = new SpringApplication(Application.class);
ConfigurableApplicationContext context = app.run(args);
context.close();

还有另一种使用Spring Actuator shutdown端点的方法: 见How to shutdown a Spring Boot Application in a correct way?

Spring Boot documentation