如何在处理后将文件移动到存档和错误文件夹 [英] How to move files to archive and error folders after processing

查看:13
本文介绍了如何在处理后将文件移动到存档和错误文件夹的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

作业运行一次,并尝试在一个步骤中处理源文件夹中的所有可用文件。此外,它还需要将已处理/尝试过但失败的文件从源文件夹删除到另一个后续文件夹(/_Archived、/_Faild)。使用Spring Batch分类移动存档文件夹中成功处理的文件和错误文件夹中未成功的文件的最佳方式是什么?

推荐答案

您可以添加单独的tasklet或使用JobExecutionListener.afterJob挂钩移动文件。

下面是使用tasklet

移动文件的示例

Java配置

@autowired
private MoveFilesTasklet moveFilesTasklet


    @Bean
    protected Step moveFiles() {
        return steps
          .get("moveFiles")
          .tasklet(moveFilesTasklet)
          .build();
    }

    @Bean
    public Job job() {
        return jobs
          .get("taskletsJob")
          .start(processFiles())
          .next(moveFiles())          
          .build();

Tasklet

@Component
public class MoveFilesTasklet implements Tasklet {     
        private String filePath ="someFilePAth";

    @Override
    public RepeatStatus execute(StepContribution stepContribution, ChunkContext chunkContext) throws Exception {    

        final File directory = new File(filePath);
        Arrays.asList(directory.listFiles((dir, name) -> name.matches("yourfilePrefix".*?")))
                .stream()
                .forEach(singleFile -> singleFile.renameTo(new File("someNewFilePath")));               
        return RepeatStatus.FINISHED;

    }

}

这篇关于如何在处理后将文件移动到存档和错误文件夹的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆