我们面临着一个非常奇怪的问题。
我们已经在xml中配置了ftp入站通道适配器。它使用DefaultFtpSessionFactory、FtpPersistentCeptOnceFileListFilter和PropertiesPersistingMetadataStore。MetadataStore配置在另一个xml文件中。
现在,我们按照配置每周获取一次文件。突然,它开始获取9-10个月大的文件。4-5周后,它重新开始从原来的位置获取新文件。然后是旧文件,再回到新文件。这种反复已经持续了一段时间,而且总是连续不断。
此外,元数据文件已经有一段时间没有更新了。
远程文件不会被删除,但本地文件在处理后会移动到存档中。
你能说明一下可能性吗?
编辑经过进一步调查,poller似乎也有问题。int:poller每周五晚上11点有cron。
文件不会在每次轮询时传输到本地目录,而是在几个月内批量传输一次。
Poller在每周五按预期挑选一个文件,并将其传递给springJobLauncher。
预期的行为是,每周五,1个文件将被传输到本地目录,然后由JobLauncher处理。这个文件是在一大早就写在远程服务器上的。
默认情况下,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;
}