对于最新稳定版本,请使用 Spring Integration 7.0.0spring-doc.cadn.net.cn

入站通道适配器:控制远程文件取用

配置入站通道适配器时,有两个属性需要考虑。每轮询最大消息数和所有轮询器一样,可以用来限制每次轮询发出的消息数量(如果有超过配置值的消息就准备好了)。最大取取大小(自5.0版本起)可以限制一次从远程服务器检索的文件数量。spring-doc.cadn.net.cn

以下情景假设起始状态是一个空的本地目录:spring-doc.cadn.net.cn

  • 每轮询最大消息数=2最大取取大小=1:适配器取一个文件,发出它,再取下一个文件,再输出,然后休眠直到下一次轮询。spring-doc.cadn.net.cn

  • 每轮询最大消息数=2最大取取大小=2适配器取出两个文件,然后逐一输出。spring-doc.cadn.net.cn

  • 每轮询最大消息数=2最大取取大小=4:适配器最多可获取四个文件(如果有),并输出前两个(如果至少有两个)。 接下来的两个文件会在下一次投票中发出。spring-doc.cadn.net.cn

  • 每轮询最大消息数=2最大取取大小未指定:适配器获取所有远程文件并发送前两个(如果至少有两个)。 后续文件会在后续轮询中同时发布(一次两个)。 当所有文件被占用后,会再次尝试远程取用,以获取任何新的文件。spring-doc.cadn.net.cn

当你部署多个应用实例时,我们建议一个小型实例最大取取大小,以避免一个实例“抓取”所有文件并导致其他实例无法使用。

另一种用途最大取取大小如果你想停止获取远程文件,但继续处理已经被获取的文件。 设置最大取物大小属性消息源(通过编程方式,无论是使用 JMX 还是控制总线)实际上阻止适配器获取更多文件,但允许轮询器继续对已获取的文件发送消息。 如果投票器在属性变更时处于激活状态,变更将在下一次投票中生效。spring-doc.cadn.net.cn

从5.1版本开始,同步器可以配备比较器<FTPFile>. 这在限制通过 获取的文件数量时非常有用最大取物大小.spring-doc.cadn.net.cn