我正在使用SftpSimplePatternFileListFilter和SftpPersistentAcceptOnceFileListFilter以及元数据存储。但是我注意到它没有刷新条目来归档。我从不显示从PropertiesPersistingMetadataStore调用的flush()方法,它最终调用saveMetaData()方法。
这是我的配置看起来像
<bean id="compositeFilter" class="org.springframework.integration.file.filters.CompositeFileListFilter">
<constructor-arg>
<list>
<bean class="org.springframework.integration.sftp.filters.SftpSimplePatternFileListFilter">
<constructor-arg value="*.txt" />
</bean>
<bean class="org.springframework.integration.sftp.filters.SftpPersistentAcceptOnceFileListFilter">
<constructor-arg name="store" ref="metadataStore"/>
<constructor-arg value="myapp"/>
</bean>
</list>
</constructor-arg>
</bean>
<bean name="metadataStore" class="org.springframework.integration.metadata.PropertiesPersistingMetadataStore">
<property name="baseDirectory" value="/tmp/"/>
</bean>
答案 0 :(得分:1)
默认情况下PropertiesPersistingMetadataStore
会刷新applicationContext
destroy:
@Override
public void close() throws IOException {
flush();
}
@Override
public void flush() {
saveMetadata();
}
@Override
public void destroy() throws Exception {
flush();
}
从4.1.2
开始,您可以在运行时手动调用flush()
。
例如。定期使用<task:sheduled-tasks>
或某些<int:outbound-channel-adapter>
。
随时询问更多信息!