我们面临着一个非常奇怪的问题。
我们在xml中配置了ftp入站通道适配器。它使用DefaultFtpSessionFactory,FtpPersistentAcceptOnceFileListFilter和PropertiesPersistingMetadataStore。 MetadataStore配置位于另一个xml文件中。
现在,我们按照配置每周获取一次文件。突然间,它开始获得9-10个月大的文件。 4-5周后,它继续获取新文件。然后再旧文件,然后回到新文件。这种来回已经持续了一段时间,并且始终是连续的。
此外,元数据文件暂时没有更新。
不会删除远程文件,但会在处理后将本地文件移动到存档。
请你注意可能性吗?
修改 经过一番调查,poller似乎也有问题。 int:poller在每个星期五晚上11点都有cron。
文件不会在每次轮询时转移到本地目录,而是在几个月内批量转移一次。
Poller在每个星期五按预期选择1个文件并将其传递给Spring JobLauncher。
预期的行为是每个星期五,1个文件将被传输到本地目录,然后由JobLauncher处理。这个文件很早就写在远程服务器上。
答案 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;
}