对于最新的稳定版本,请使用 Spring Integration 6.3.1Spring中文文档

对于最新的稳定版本,请使用 Spring Integration 6.3.1Spring中文文档

配置入站通道适配器时,应考虑两个属性。与所有轮询器一样,可用于限制每次轮询上发出的消息数(如果已准备就绪的值超过配置的值)。 (从 5.0 版开始)可以限制一次从远程服务器检索的文件数。max-messages-per-pollmax-fetch-sizeSpring中文文档

以下方案假定起始状态为空本地目录:Spring中文文档

  • max-messages-per-poll=2和 :适配器获取一个文件,发出它,获取下一个文件,然后发出它。 然后它一直沉睡到下一次投票。max-fetch-size=1Spring中文文档

  • max-messages-per-poll=2和 ):适配器获取这两个文件,然后发出每个文件。max-fetch-size=2Spring中文文档

  • max-messages-per-poll=2和 :适配器最多获取 4 个文件(如果可用)并发出前两个文件(如果至少有两个)。 接下来的两个文件将在下一次轮询时发出。max-fetch-size=4Spring中文文档

  • max-messages-per-poll=2且未指定:适配器获取所有远程文件并发出前两个文件(如果至少有两个)。 后续文件在后续轮询时发出(一次两个)。 当所有文件都用完时,将再次尝试远程提取,以拾取任何新文件。max-fetch-sizeSpring中文文档

当您部署应用程序的多个实例时,我们建议设置一个小实例,以避免一个实例“抓取”所有文件并导致其他实例挨饿。max-fetch-size
当您部署应用程序的多个实例时,我们建议设置一个小实例,以避免一个实例“抓取”所有文件并导致其他实例挨饿。max-fetch-size

另一个用途是当您想要停止获取远程文件但继续处理已获取的文件时。 在 上设置属性(以编程方式、通过 JMX 或通过控制总线)可以有效地阻止适配器提取更多文件,但允许轮询器继续为以前获取的文件发出消息。 如果轮询器在属性更改时处于活动状态,则更改将在下一次轮询时生效。max-fetch-sizemaxFetchSizeMessageSourceSpring中文文档

从版本 5.1 开始,可以为同步器提供 . 这在限制使用 .Comparator<?>maxFetchSizeSpring中文文档