Spring批处理 – 处理后从目录中删除flatfile

在spring批处理中,我使用MultiResourceItemReader从目录中读取多个文件。 然后我使用FlatFileItemReader作为委托处理单个文件。 我的用例是在文件完全处理后删除文件(READ-WRITE完成)然后multiResourceitemReader必须选择另一个文件,它必须继续。

我尝试使用FileDeletingTasklet来删除目录中的文件,但是根据Spring文档,execute方法只会被调用一次。 如何在文件上删除已处理的文件(READ-WRITE),但是在目录中完全处理完所有文件后,我不想删除整个目录。

以下是我正在使用的工作:

                  

FlatFileItemReader.setResource()方法重写为

 public void setResource(Resource resource) { this.resource = resource; this.delegateReader.setResource(resource); } 

并在完全使用流时管理FlatFileItemReader.read()文件删除

 public T read() throws Exception { T o = this.delegateReader.read(); if (o == null) { // Perform deletion here deleteFile(this.resource); } return o; } 

我通过在jobcontext中添加进行文件名作为列表来实现它,然后在我的下一步中执行我的自定义tasklet来删除文件或根据列表移动文件。