int-ftp:inbound-channel-adapter正在检索旧文件

时间:2017-10-10 13:54:00

标签: ftp spring-integration

我们面临着一个非常奇怪的问题。

我们在xml中配置了ftp入站通道适配器。它使用DefaultFtpSessionFactory,FtpPersistentAcceptOnceFileListFilter和PropertiesPersistingMetadataStore。 MetadataStore配置位于另一个xml文件中。

现在,我们按照配置每周获取一次文件。突然间,它开始获得9-10个月大的文件。 4-5周后,它继续获取新文件。然后再旧文件,然后回到新文件。这种来回已经持续了一段时间,并且始终是连续的。

此外,元数据文件暂时没有更新。

不会删除远程文件,但会在处理后将本地文件移动到存档。

请你注意可能性吗?

修改 经过一番调查,poller似乎也有问题。 int:poller在每个星期五晚上11点都有cron。

文件不会在每次轮询时转移到本地目录,而是在几个月内批量转移一次。

Poller在每个星期五按预期选择1个文件并将其传递给Spring JobLauncher。

预期的行为是每个星期五,1个文件将被传输到本地目录,然后由JobLauncher处理。这个文件很早就写在远程服务器上。

1 个答案:

答案 0 :(得分:0)

默认情况下,PropertiesPersistingMetadataStore仅在正常应用程序关闭时刷新到磁盘。

请参阅过滤器上的setFlushOnUpdate()

/**
 * Determine whether the metadataStore should be flushed on each update (if {@link Flushable}).
 * @param flushOnUpdate true to flush.
 * @since 4.1.5
 */
public void setFlushOnUpdate(boolean flushOnUpdate) {
    this.flushOnUpdate = flushOnUpdate;
}