Spring 集成 DSL FTP

Spring Integration DSL FTP

我有 Spring 个入站 FTP

我正在看文档

https://docs.spring.io/spring-integration/reference/html/ftp.html

如果您碰巧在本地目录中有一个或多个文件, 它会在启动与远程 FTP 服务器的通信之前处理这些文件。

以上到底是什么意思?

例如,在我的例子中,本地目录是其他流将从中获取的目录。例如,我在该目录中有 5 个文件尚未被其他流拾取。

为什么 FTP 适配器会再次尝试处理它们,它究竟会做什么?我怎样才能阻止它?

看来你还没有准备好FTP入站通道适配器文档仔细:https://docs.spring.io/spring-integration/reference/html/ftp.html#ftp-inbound

这是一种将远程文件下载到本地副本的组件。 这就是我们在这里谈论 本地目录 并且在该通道适配器上有一个选项的原因。关键是这个通道适配器将远程文件下载到本地目录中,并且仅在此之后它才构建一个带有本地文件的消息以发送到 channel。你绝对不应该干扰其他组件在这个本地目录中做任何事情。该声明说,如果该本地目录中已经有一些文件,则它们首先作为有效负载发布,然后此通道适配器才采用获取远程文件的路径。

您不能停止此逻辑,除非您在处理后删除这些文件。尽管您可以改用流式入站通道适配器:https://docs.spring.io/spring-integration/reference/html/ftp.html#ftp-streaming