PropertiesPersistingMetadataStore不写入文件

时间:2015-07-01 17:49:15

标签: spring-integration

我正在使用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>

1 个答案:

答案 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>

随时询问更多信息!