【发布时间】:2021-09-01 19:20:37
【问题描述】:
我有 Job Spring Batch 读取和写入多个文件,我使用 MultiResourcePartitioner 读取多个文件。
当我将文件列表设置为资源 (partitionner.setResources(listFiles)) 时,pMultiResourcePartitioner 随机处理文件不遵守 listFiles 中文件的顺序
这是我的代码:
@Bean
@JobScope
public MultiResourcePartitioner paritioner() throws IOException {
MultiResourcePartitioner partitioner = new MultiResourcePartitioner();
Resource[] resources = new Resource[listFiles.size()];
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
HashMap<Integer, String> collect = listFiles
.stream().sorted(Comparator.reverseOrder()).collect(HashMap<Integer, String>::new, (map, streamValue) -> map.put(map.size(), streamValue), (mapFirst, mapSecond) -> {
});
collect.forEach((index, value) -> resources[index] = resolver.getResource("file:" + value));
partitioner.partition(1);
partitioner.setResources(resources);
return partitioner;
}
如何避免MultiResourcePartitioner中的随机进程文件
【问题讨论】:
-
这里有这个问题的答案:stackoverflow.com/questions/41479240/…
标签: java spring spring-batch