我将从客户端的SFTP服务器收到一个或多个文件,这些文件存储在我们的本地目录中。该文件的名称将类似于DDMMYYYYHHMMSSIIXCFILE.XSMP#1234567890。因此在示例中除了字符串" XCFILE.XSMP"该文件具有不同的前缀和后缀,使文件非常独特。之前我们将文件重命名为XCFILE.XSMP并通过spring批处理,如下所示。 (我的配置非常类似于帖子here)
<property name="resource" value="file:${XCFILE.XSMP}" />
我现在有更多的用例:
我的问题是:
请给我一个机会,让我知道我的任何案件或疑问是否不清楚。感谢。
答案 0 :(得分:0)
您的问题有几个方面:
如何通过Spring Batch读取多个文件。
MultiResourceItemReader
可以使用SpEL表达式来定义您要阅读的文件。您可以为其配置resources属性,使其在您的情况下看起来像这样:
<bean id="inputTestReader" class="org.springframework.batch.item.file.MultiResourceItemReader">
<property name="resources" value="file:some/path/*XCFILE.XSMP*" />
<property name="delegate" ref="testItemReader" />
</bean>
以上示例还应解决仅读取XCFILE.XSMP文件的问题。
如何确保仅处理未处理的文件
处理的典型方法是移动或重命名已处理的文件,使其与正在读取的文件的表达式不匹配。这可以通过在完成文件时移动文件的监听器来完成。