读取一个文件后停止文件入站通道适配器

时间:2014-08-10 13:38:42

标签: spring-batch spring-integration

我们的应用程序使用Spring Integration file:inbound-channel-adapter来轮询目录,以便在文件被丢弃时进行监听。然后,Spring Integration启动Spring Batch作业,将要处理的文件的路径和名称移交给作业。

显然,即使在Spring Batch作业处理了文件之后,文件轮询器仍继续运行。因此,Spring上下文保持打开状态,应用程序不会终止。有没有办法,以编程方式或通过配置(最好),在读取一个文件后停止轮询?

由于

1 个答案:

答案 0 :(得分:3)

您可以在this answer中使用轮询器上的FireOnceTrigger或其他技术之一。

要以编程方式停止适配器,close()上下文,或将adapter.stop()@Autowire适配器调用为SourcePollingChannelAdapter。或者使用<control-bus/>并发送有效负载"adapterId.stop()"的消息。