在spring批处理中,我使用MultiResourceItemReader从目录中读取多个文件。然后我使用FlatFileItemReader作为委托来处理单个文件。我的用例是在完全处理文件(READ-WRITE完成)后删除文件,然后multiResourceitemReader必须选择另一个文件,并且它必须继续。Spring批处理 - 在处理后从目录中删除平面文件
我试过FileDeletingTasklet删除目录中的文件,但按照Spring文档,execute方法只会被调用一次。我如何实现文件上被删除的文件(READ-WRITE),但是一旦所有文件在目录中完全处理完毕,我就不想用整个目录删除。
下面是我使用的工作:
<batch:job id="getEmpDetails">
<batch:step id="readAndProcess" next="deleteProcessedFile">
<batch:tasklet>
<batch:chunk reader="readEmpDetails" writer="writeEmpDetails" commit-interval="100">
</batch:chunk>
</batch:tasklet>
</batch:step>
<batch:step id="deleteProcessedFile">
<batch:tasklet ref="fileDeletingTasklet" />
</batch:step>
</batch:job>
<bean id="fileDeletingTasklet" class="com.test.FileDeletingTasklet">
<property name="directoryResource">
<bean id="directory" class="org.springframework.core.io.FileSystemResource">
<constructor-arg value="E:/testDir/file1.txt" />
</bean>
</property>
</bean>