本文介绍了如何在处理后将文件移动到存档和错误文件夹的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
作业运行一次,并尝试在一个步骤中处理源文件夹中的所有可用文件。此外,它还需要将已处理/尝试过但失败的文件从源文件夹删除到另一个后续文件夹(/_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; } }更多推荐
如何在处理后将文件移动到存档和错误文件夹
发布评论