如何在完成所有文件的所有进程后在spring集成中创建自动关闭?
我的应用程序下载未定义的文件数并按顺序处理所有文件,流程如下:
file:inbound-channel-adapter --> Transformer --> Splitter -->
http-outbound-gateway --> int:aggregator --> mail:outbound-channel-adapter.
最后,我应该关闭我的应用程序。
如何知道所有文件都已处理? 有人有经验吗?
由于
答案 0 :(得分:1)
在这种情况下,您需要跟踪入站目录。 您必须向流添加另一个步骤(可能是跟踪最后一个文件)。 我建议使用ETL技术:读取文件描述然后处理它们。
当处理它时,你可以发送事件来关闭应用程序。
可以使用ConfigurableApplicationContext
:
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?